【发布时间】:2016-09-14 22:58:24
【问题描述】:
我正在尝试构建一些第 3 方代码并将其链接到我们自己的 STLPort 私有版本,他们的代码使用 CMake,我是新手。
我能够让编译器对我们的 STLPort 包含工作,但我无法阻止链接器在 libstdc++ 中进行链接。我试过了:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -nostdlib")
list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_LIBRARIES stdc++)
但没有运气。
Amazon Linux AMI(基于 RHEL 5.x)、CMake 2.8.12。
建议/指针将不胜感激。
谢谢。
【问题讨论】:
-
您可以尝试
CMAKE_USER_MAKE_RULES_OVERRIDE脚本。你可以在CMAKE_CXX_IMPLICIT_LINK_LIBRARIES缓存到CMakeCXXCompiler.cmake之前修改它。有关示例,请参见 here。 -
这是飞行员错误。正如我在下面提到的,CMake 文件很大,并且 STLPort 定义中存在隐藏/屏蔽错误,导致问题远离定义。只需
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -nostdlib")即可