【发布时间】:2014-11-30 01:02:16
【问题描述】:
我正在尝试让一个库在我的 c++ 项目中工作,但对于不习惯 c++ 的人如何做到这一点没有明确的说明
以下link是我来的最近的
它说明了以下内容
-L/path/to/my/library/folder -ldllname
以下thread 声明如下
gcc yourfile.cpp -lblah
现在我可以看到命令是-l + filename,例如我的文件名是directory/libtest.so 它会是-ldirectory/libtest.so,这是正确的,有人可以澄清一下
我目前正在使用以下命令来编译我的 maincpp.cpp 文件,但希望包含一个名为例如 ./directory/libtest.so 的 .so 文件
g++ -fPIC -o libgetmacip.so -shared -I $JAVA_HOME/include -I $JAVA_HOME/include/linux maincpp.cpp cpptoinclude.cpp
【问题讨论】:
-
您必须记住,将动态库提供给二进制文件意味着仅声明此二进制文件应在执行时链接到 该名称的库(不是那个库)。在执行时,system 中必须存在这样的库(例如,在 LD_LIBRARY_PATH 中),因此为其指定特定目录没有多大意义。