【发布时间】:2013-12-06 12:33:32
【问题描述】:
我在 github https://github.com/acgreek/ExtremeCUnit 上编写/维护了一个使用 cmake 构建的小型单元测试库。您可以在签出后通过“cmake test”签出并运行一些测试。它在 Cygwin 和 Ubuntu(我唯一的家庭系统)上运行良好。我最近升级到 ubuntu 13.10 并且该库停止与测试二进制文件链接,因为 ExtremeUnitC 库现在需要在链接阶段(通过 add_library)与 -ldl 链接,另外 -ldl 需要添加到链接的末尾行(似乎对 gcc 进行了一些更改)。在之前的 Ubuntu 版本中,在测试对象与 ExtremeUnitC 库链接之前,add_library 目标不需要 -ldl
基本上我需要的是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?
您也可以向我发送拉取请求,以便获得修复它的功劳。
【问题讨论】:
标签: c ubuntu cmake shared-libraries