如何在代码块中 link ta-lib (Ubuntu 14.04)?
How to link ta-lib in codeblocks (Ubuntu 14.04)?
我已经在我的 ubuntu 14.04 中安装了 ta-lib,如官方文档所述
extract tar.gz
./configure
./make
./make install
它在 /usr/local/include/ta-lib
中安装了 ta-lib。然后我将 header 添加到单独的 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 错误,我知道这是由于代码块中的链接问题造成的。所以我在 project>build options> linker settings>link libraries
中手动添加了 ta-lib
,在 other linker options
中手动添加了 -lta-lib
,但现在它给出了这个错误
/usr/bin/ld: cannot find -lta-lib
./configure
./make
./make install
不会安装包。
./configure
make
sudo make install
会安装它。这可能就是你所做的。
It installed ta-lib in /usr/local/include/ta-lib
不完全是。它将库的头文件安装在
/usr/local/include/ta-lib
它安装了静态和共享
/usr/local/lib
.
下的图书馆
I manually added ta-lib in project>build options> linker settings>link libraries
and -lta-lib to other linker options
这些是做同样事情的替代方法。两者都会导致
要传递给链接器的选项 -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}
.
所以 :-
- 在 构建选项 -> Linker settings 中将
ta-lib
替换为 ta_lib
- >
Link 图书馆
- 从构建选项中删除
-lta-lib
-> Linker 设置 ->
其他链接器选项
我已经在我的 ubuntu 14.04 中安装了 ta-lib,如官方文档所述
extract tar.gz
./configure
./make
./make install
它在 /usr/local/include/ta-lib
中安装了 ta-lib。然后我将 header 添加到单独的 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 错误,我知道这是由于代码块中的链接问题造成的。所以我在 project>build options> linker settings>link libraries
中手动添加了 ta-lib
,在 other linker options
中手动添加了 -lta-lib
,但现在它给出了这个错误
/usr/bin/ld: cannot find -lta-lib
./configure
./make
./make install
不会安装包。
./configure
make
sudo make install
会安装它。这可能就是你所做的。
It installed ta-lib in /usr/local/include/ta-lib
不完全是。它将库的头文件安装在
/usr/local/include/ta-lib
它安装了静态和共享
/usr/local/lib
.
I manually added ta-lib in project>build options> linker settings>link libraries and -lta-lib to other linker options
这些是做同样事情的替代方法。两者都会导致
要传递给链接器的选项 -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}
.
所以 :-
- 在 构建选项 -> Linker settings 中将
ta-lib
替换为ta_lib
- > Link 图书馆 - 从构建选项中删除
-lta-lib
-> Linker 设置 -> 其他链接器选项