如何在代码块中链接ta-lib(Ubuntu 14.04)?

时间:2016-07-25 06:00:26

标签: c++ ubuntu-14.04 codeblocks ta-lib

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

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

它在/usr/local/include/ta-lib中安装了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();
    }

它给出了 undefined 错误,我知道这是由于链接代码块中的问题造成的。所以我手动将ta-lib project>build options> linker settings>link libraries-lta-lib other linker options添加到/usr/bin/ld: cannot find -lta-lib ,但现在却给出了此错误

<div class="side_box side_box_1 red5">
    <h5><a href="#" class="tgl_btn">Filter Products</a></h5>
    <h6>Brand</h6>
    <?php $topics = get_terms('product_cat');
        echo '<ul class="advanced-filters tgl_c">';
        foreach ($topics as $topic) {
            echo '<li class="advanced-filter" data-group="Brand"><a href="'.get_term_link($topic).'">'.$topic->name.'</a></li>';
        }
        echo '</ul>';?>
</div> 

1 个答案:

答案 0 :(得分: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下的图书馆。

  

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

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

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

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

然而,链接器抱怨它无法找到该选项的库 -lta-lib因为/usr/local/lib中安装的共享库是。{ libta_lib.so,静态库为libta_lib.a。不是libta-lib.{so|a}

所以: -

  • ta-lib替换为构建选项中的ta_lib - &gt; 链接器设置 - &gt; 链接库
  • 构建选项 - &gt;中删除-lta-lib 链接器设置 - &gt; 其他链接器选项