我正在尝试在我的C应用程序中使用ta-lib(http://ta-lib.org/)C API。
我下载了ta-lib的源代码,使用make install将它们安装在我的系统上。库已成功编译,我在/usr/local/lib/
中有二进制文件。
然后我按照ta-lib网站上的建议编译我的应用程序:
$ gcc -L/usr/local/lib -lta-lib -o tlc talib_test.c
/usr/bin/ld: cannot find -lta-lib
collect2: ld returned 1 exit status
$
任何想法出了什么问题?
OS:我正在使用Ubuntu 9。
答案 0 :(得分:1)
您是否有可能安装了libta-lib.so
的32位副本并正在编译64位测试程序,反之亦然?也就是说,你的库类型可能不匹配吗?
如果不这样做,您是否看过/usr/local/lib
检查您是否有libta-lib.so
?或者可能是库实际上被称为libta.so
或类似的东西,所以你需要在命令行上指定-lta
?
在我的Mac上,如图所示安装了库(编译几分钟后):
/usr/bin/install -c .libs/libta_lib.lai /usr/gnu64/lib/libta_lib.la
/usr/bin/install -c .libs/libta_lib.a /usr/gnu64/lib/libta_lib.a
这需要使用带有下划线的-lta_lib
而不是带有短划线的-lta-lib
。
答案 1 :(得分:0)
libya-in.a在哪里?错误消息表明链接器无法找到库。