gpt4 book ai didi

CMake 在 add_library 的链接阶段末尾添加 -ldl

转载 作者:太空狗 更新时间:2023-10-29 15:17:53 24 4
gpt4 key购买 nike

我在 github 上编写/维护了一个小型单元测试库 https://github.com/acgreek/ExtremeCUnit使用 cmake 构建。您可以在 checkout 后通过“cmake test” checkout 并运行一些测试。它在 Cygwin 和 Ubuntu(我唯一的家庭系统)上运行良好。我最近升级到 ubuntu 13.10 并且库停止与测试二进制文件链接,因为 ExtremeUnitC 库现在需要在链接阶段(通过 add_library)与 -ldl 链接,另外 -ldl 需要添加到链接的末尾行(似乎对 gcc 进行了一些更改)。在以前的 Ubuntu 版本中,add_library 目标不需要 -ldl 直到测试对象与 ExtremeUnitC 库链接

基本上我需要的是make VERBOSE=10的结果,当它进行到下一个阶段

Linking C shared library libExtremeCUnit.so
/usr/bin/cmake -E cmake_link_script CMakeFiles/ExtremeCUnit.dir/link.txt --verbose=10
/usr/bin/gcc -fPIC -Wall -Wextra -ggdb3 -fPIC -ldl -shared -Wl,- soname,libExtremeCUnit.so -o libExtremeCUnit.so CMakeFiles/ExtremeCUnit.dir/main.c.o CMakeFiles/ExtremeCUnit.dir/runner.c.o CMakeFiles/ExtremeCUnit.dir/util.c.o CMakeFiles/ExtremeCUnit.dir/findtest_names.c.o CMakeFiles/ExtremeCUnit.dir/assert_support.c.o

我需要它,

Linking C shared library libExtremeCUnit.so
/usr/bin/cmake -E cmake_link_script CMakeFiles/ExtremeCUnit.dir/link.txt --verbose=10
/usr/bin/gcc -fPIC -Wall -Wextra -ggdb3 -fPIC -ldl -shared -Wl,- soname,libExtremeCUnit.so -o libExtremeCUnit.so CMakeFiles/ExtremeCUnit.dir/main.c.o CMakeFiles/ExtremeCUnit.dir/runner.c.o CMakeFiles/ExtremeCUnit.dir/util.c.o CMakeFiles/ExtremeCUnit.dir/findtest_names.c.o CMakeFiles/ExtremeCUnit.dir/assert_support.c.o -ldl

我应该如何以干净/可移植的方式将我的 CMakeList.txt 编辑成那个?

您也可以向我发送拉取请求,这样您就可以获得修复它的荣誉。

最佳答案

我只需要添加

target_link_libraries(ExtremeCUnit dl)

关于CMake 在 add_library 的链接阶段末尾添加 -ldl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131138/

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