eclipse-cdt如何与静态库链接

时间:2012-07-24 18:07:40

标签: c++ eclipse-cdt

拳头我很困惑,如果我在链接器/库下设置库或在“路径和符号”下设置它们。我认为他们是一样的。我是对的吗?

我的问题的任何方式 - 我需要链接静态库,所以我尝试了一些东西:

首先尝试我尝试在链接库中添加gtest(这是库)和gtest路径。 以这种方式编译和链接正确,但在运行时失败,因为当它试图加载共享库(我想要静态库!)错误是

  加载共享库时出现

错误:libgtest.so.0

第二次尝试 - 我尝试在路径和符号中定义它,向库添加完整路径'/root/workspace/gmock/gtest/lib/.lib/libgtest.a'。在这种情况下,我在链接中出错:

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

This post dosnt给出了答案,并没有解释你如何定义与静态vs共享的不同链接。

谢谢

3 个答案:

答案 0 :(得分:17)

经过大量研究而没有相关答案。找到了!!! 我在this useful link for eclipse-cdt

中找到了它

显然,图书馆需要存在于工作区中。

答案 1 :(得分:3)

将库路径/文件添加到:属性 - C / C ++构建 - 设置 - GCC C ++链接器 - 其他 - 其他对象

答案 2 :(得分:1)

我将Botan加密库构建为静态库,原因是我不想进入这里,当我按照互联网上的所有步骤进行操作时,添加库路径并指定库名称而不用& #34; LIB"和#34; .a",我的项目建立得很好,然而,当我运行它时,我一直得到"程序意外终止" (或类似的)错误。最后我想出了如何解决它。在菜单栏中,转到项目>属性> C / C ++ Build>设置>交叉G ++链接器并在-static${COMMAND}之间添加${FLAGS},因此整行看起来像:

${COMMAND} -static ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

你的可能会有所不同。我使用Eclipse Luna Service Release 2(4.4.2),在Windows 8.1上使用mingw-w64 mingw-builds项目w / gcc 4.9.2。