gpt4 book ai didi

cmake - 如何在cmake中静态链接到glibc

转载 作者:行者123 更新时间:2023-12-04 23:38:24 66 4
gpt4 key购买 nike

我正在尝试从 Fedora 构建一个可以在 RedHat 6 机器上运行的包。所以我需要用一些在 RedHat 机器中不存在的库来构建和静态链接。
我发现我可以你-static-libgcc-static-libstdc++与标准库的静态版本链接,但我不知道如何处理 glibc .如何链接到 glibc 的静态库用 CMake?

对不起,我的英语不好。

最佳答案

我知道问题提到 glibc但是对于 C++,因为 -static-libgcc-static-libstdc++是链接器选项,在 CMake 中设置它们的正确方法是使用 target_link_libraries() .
所以你可以这样设置,其中 MyLibrary 是你的项目名称:

target_link_libraries(MyLibrary -static-libgcc -static-libstdc++)
鉴于此,如果您想要完整的静态链接 glibc你同样会通过 -static旗帜。
target_link_libraries(MyLibrary -static)
如果您想要更多的全局设置:
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_EXE_LINKER_FLAGS "-static")
但是,请记住 glibc不是为了静态链接而设计的,如果没有大量的额外工作,你就不会得到一个真正静态的包。您构建“可以在 RedHat 6 机器上运行的 Fedora 软件包”的用例将无法通过静态链接轻松工作 glibc .

关于cmake - 如何在cmake中静态链接到glibc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46809303/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com