【问题标题】:Building shared library with Eclipse CDT directly直接用 Eclipse CDT 构建共享库
【发布时间】:2011-04-08 17:40:20
【问题描述】:

我想将我的 C++ 项目的构建完全移动到 Eclipse CDT,但是我遇到了一些配置问题。这是我的旧 g++ 编译器调用:

g++ -I/home/lib/tinyxml
    -I/usr/lib/jvm/java-6-openjdk/include
    -L/usr/local/lib -L/home/konrad/tinyxml
    -lboost_system
    -lboost_thread
    -lboost_regex 
    -fPIC
    -shared
    -o libagent.so
    agent.cpp AgentSocket.cpp ThreadInfo.cpp  
    /home/lib/tinyxml/tinyxml.cpp
    /home/lib/tinyxml/tinyxmlerror.cpp 
    /home/lib/tinyxml/tinyxmlparser.cpp
    /home/lib/tinyxml/tinystr.cpp 

创建项目时,我选择共享 Library > Emtpy Project

这是我的问题:

  1. Eclipse CDT 以某种方式生成 makefile,它首先编译每个 .cpp 文件,然后将其重新编译到共享库。这让我面临一个或多个问题。我想跳过这一步,像在控制台中一样运行它。

  2. 我无法在 C++ 构建配置中配置 -L 和 -l 选项,因为 Eclipse CDT 仅为 C++ 链接部分提供这些选项,而不是为 C++ 编译器部分提供这些选项,但我需要它们已经存在,因为项目编译时不会出错。

【问题讨论】:

    标签: c++ makefile eclipse-cdt


    【解决方案1】:
    1. 这不是问题,但实际上makefile 通常是如何构造的。这样,如果您更改了一个源文件,则不必重新编译所有其他源文件,而只需重新编译已更改的源文件。它最大限度地减少了重新编译时间。
    2. 这应该不是问题,因为它们是仅在链接期间使用的选项。将源文件编译成目标文件不应依赖于外部库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多