我在Ubuntu上使用sqlite3,并希望添加extension-functions.c文件提供的acos和asin函数。
https://github.com/seth/RSQLite.extfuns/blob/master/src/extension-functions.c
当我按照源代码中给出的说明进行操作时,出现以下错误,但没有找到任何解决办法。我尝试了Ubuntu 15.04、15.10和现在的16.04。
extension-functions.c: In function ‘print_elem’:
extension-functions.c:1942:10: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘int64_t {aka long int}’ [-Wformat=]
printf("%d => %lld\n", ee,c);
^
这是我所做的:
在新文件夹中的
$ gcc -fPIC -lm -shared extension-functions.c -o libsqlitefunctions.so
。 =>然后出现上面提到的错误。
我在做什么呢?
最佳答案
打印int64_t
的正确方法是:
#include <inttypes.h>
...
printf("%d => %" PRId64 "\n", ee, c);
在程序/库中,您可以更改打印方式以获得所需的结果。
可以在here中找到打印格式的完整列表。您可以使用脚本来修复打印。
关于c++ - 如何在Ubuntu上为sqlite3安装extension-functions.c,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36937973/