我已经看到了其他几个答案,以便在eclipse中为我的C + =项目添加一个库。我试图使用-L“和文件夹的路径”和-l在Miscellaneous部分添加路径到链接“在乞讨中没有lib前缀的名称和最后的.so” 我尝试添加libxl库,所以我使用-lxl(对于libxl.so)和-L / home / username / libxl3.5.3.0 / lib /(这是lib文件的位置)。
我还试图在Linker菜单下给它并在Libraries部分添加名称和路径。
我收到错误:/ usr / bin / ld找不到-lxl文件并返回错误
我使用-static到链接器以生成包含所有lib的可执行文件但是当我不使用-static时,lib的问题从构建解析但仍然当我尝试运行程序时我得到错误,我程序无法打开共享文件libxl.so导致该文件不存在。我该如何解决这个问题?
答案 0 :(得分:2)
在eclipse中将库名添加到C ++项目时,不要在其前面添加-l。 Eclipse会在调用编译器时为您执行此操作。例如,如果您想要boost_regex库,只需输入boost_regex
而不是 lboost_regex
。 Eclipse将为您完成剩下的工作。或者在您的具体情况下,只需使用xl
而不是lxl
。正如erenon在下面的评论中指出的那样,您不需要-
,也不需要路径前的-L
。请注意,上述内容适用于使用Project->Properties->C/C++ General->Paths and Symbols
对话框表单添加库以使用Libraries
和Library Paths
标签添加库的方法。
您正尝试静态链接到共享库。根据我的经验,我总是使用* .a文件而不是* .so文件来使用静态链接。另一个答案Static link of shared library function in gcc似乎表明您实际上无法静态链接到* .so文件。