首先,我很困惑是将图书馆设置在Linker/Libraries下面,还是将它们设置在“路径和符号”之下。我认为他们是一样的。我说得对吗?
为了回答我的问题,我需要链接静态库,所以我尝试了很少的东西:
首先尝试,我尝试在链接库中添加gtest (这是库)和gtest路径。这样,它的编译和链接正确,但在运行时失败,因为当它试图加载共享库(,我想要静态库!)错误是
加载共享库时出错: libgtest.so.0
第二次尝试-我尝试在路径和符号中定义它,并将完整的路径添加到库中。在这个例子中,我得到了链接中的错误:
g++ -L/root/workspace/gmock/lib/.libs -L/root/workspace/gmock/gtest/lib/.libs -o "playground" ./src/p.o ./src/playground.o -lpthread -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a -l/root/workspace/gmock/lib/.lib/libgmock.a
/usr/bin/ld: cannot find -l/root/workspace/gmock/gtest/lib/.lib/libgtest.a这个职位没有给出一个答案,也没有解释如何定义与静态和共享不同的链接。
谢谢
发布于 2012-07-25 07:40:49
经过大量的研究,没有相关的答案。找到了!我在这个对eclipse-cdt有用的链接找到的
显然,这个库需要存在于工作区中。
发布于 2015-07-07 18:30:45
将库路径/文件添加到: Properties - C/C++构建-设置- GCC C++链接器-杂项-其他对象
发布于 2015-03-19 00:20:47
我将Botan密码库构建为一个静态库,原因是我不想在这里讨论,当我按照所有的步骤在网络上添加库路径并指定库名时,没有"lib“和".a",我的项目构建得很好,但是当我运行它时,我一直收到”程序意外终止“(或类似的)错误。最后我想出了解决办法。在菜单栏中,转到Project > Properties > C/C++ Build > Settings >交叉G++链接器,并在${COMMAND}和${FLAGS}之间添加-static,因此整行如下所示:
${COMMAND} -static ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}你的可能会有所不同。我正在使用Eclipse露娜服务第2版(4.4.2),在Windows 8.1上使用mingw-w64 mingw-构建项目w/gcc 4.9.2。
https://stackoverflow.com/questions/11636755
复制相似问题