【发布时间】:2013-06-04 17:50:52
【问题描述】:
我有一个包含函数列表的 so 文件,现在我想构建一个 C++ 程序来使用库中的这些函数
我已经尝试过:g++ -Llibname.so xxx.cpp 并设置了库 .so 的 LD_LIBRARY_PATH 环境变量,但是它仍然给我一个错误,比如找不到函数。
你能给我一些关于用库编译 C++ 程序的想法吗?
非常感谢!
#include <iostream>
#include <signal.hpp>
using namespace std;
int main() {
cout << "!!!Hello World!!!" << endl;
processData("/home/radwan/2011-07-22Field1/", 0,
4500, 1,
100, 70,
90, 8,
100,1.8);
return 0;
}
头文件声明:
int processData(char const * directory, int const minimumSignalLevel,
int const maximumSignalLevel, int const samplingFactor,
int const minimumTrackDimension, int const minimumMissingVineStocksDimension,
int const maximumMissingVineStocksDimension, int const maximumFoliageHoleDimension,
int const cellSide4Average,float const & FRF_R_threshold_Value);
【问题讨论】:
-
g++选项
-L指定搜索库的目录;使用-l指定库本身。另外,这个库也是由 g++ 生成的吗? -
g++ -LLIBRARY_PATH -lLIBRARY_NAME ...。如果你想用 '/usr/local/lib/libsome_lib.so' 链接可执行文件,那么你使用 args-L/usr/local/lib -lsome_lib执行 g++。 -
g++ xxx.cpp /usr/local/lib/libsome_lib.so也可以,但我更喜欢使用 -L 和 -l 参数。
标签: c++ centos shared-libraries