从CMake构建中删除libstdc++

Remove libstdc++ from CMake build

本文关键字:删除 libstdc++ 构建 CMake      更新时间:2023-10-16

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

如有建议或指教,不胜感激。

谢谢。

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

以下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++)
test.cpp

:

int main()
{
        return 0;
}

产生预期的链接器警告:

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

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

我认为你应该提供更多关于构建过程的细节。