从CMake构建中删除libstdc ++

时间:2016-09-14 14:28:31

标签: c++ cmake

我正在尝试构建一些第三方代码并将其链接到我们自己的私有版本的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。

建议/指示将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

我相信构建脚本中有更多逻辑。

以下CMakeLists.txt:

cmake_minimum_required (VERSION 2.6)
project (Test)
add_executable(Test test.cpp)

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -nostdlib")
list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_LIBRARIES stdc++)

for test.cpp:

int main()
{
        return 0;
}

产生预期的链接器警告:

/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400144

这意味着我的二进制文件没有与stdlib链接。

我相信您应该提供有关构建过程的更多详细信息。