0

如官方文档中所述,我已经在我的 ubuntu 14.04 中安装了 ta-lib

extract tar.gz
./configure
./make
./make install

它将 ta-lib 安装在/usr/local/include/ta-lib. 然后我将标头单独添加到 talib#include <ta-lib/ta_libc.h>并编译代码而没有错误。但是当我添加 ta-lib 示例代码时

    #include <ta-lib/ta_libc.h>
    TA_RetCode retCode;
    retCode = TA_Initialize( );
    if( retCode != TA_SUCCESS )
    printf( "Cannot initialize TA-Lib (%d)!\n", retCode );
    else
    {
        printf( "TA-Lib correctly initialized.\n" );

        /* ... other TA-Lib functions can be used here. */

        TA_Shutdown();
    }

它给出了一个未定义的错误,我知道这是由于代码块中的链接问题。所以我手动添加ta-libproject>build options> linker settings>link libraries,但现在它给出-lta-libother linker options这个错误

/usr/bin/ld: cannot find -lta-lib
4

1 回答 1

2
./configure
./make
./make install

不会安装包。

./configure
make
sudo make install

将安装它。那可能就是你所做的。

它在 /usr/local/include/ta-lib 中安装了 ta-lib

不完全是。它将库的头文件 /usr/local/include/ta-lib安装在下,并将静态库和共享库安装在/usr/local/lib.

我在项目>构建选项>链接器设置>链接库和-lta-lib中手动添加了ta-lib到其他链接器选项

这些是做同样事情的替代方法。它们都将导致选项-lta-lib被传递给链接器,因此您的链接器命令行将显示此选项两次。

该选项指示链接器在您指定的每个链接器搜索目录(如果有)中搜索一个名为的共享库libta-lib.so,或者,如果失败,则在其默认搜索目录中搜索一个静态库。libta-lib.a

您没有指定链接器搜索目录,但这没关系,因为 /usr/local/lib安装库的位置链接器的默认搜索目录之一。

尽管如此,链接器仍抱怨它找不到该选项的库, -lta-lib因为安装的共享库/usr/local/lib是 is libta_lib.so而静态库是libta_lib.a. 不是libta-lib.{so|a}

所以 :-

  • 替换ta-lib构建选项->链接ta_lib设置-> 链接库
  • -lta-lib构建选项中删除->链接器设置-> 其他链接器选项
于 2016-07-25T12:53:27.893 回答