我正在尝试cmocka在 Mac OSX Yosemite 10.10.3 上安装和运行用于单元测试的库,但我的RPATH设置存在一些问题。
更新:
感谢@baf,我能够cmocka.h像这样手动包含在我的 CMakeLists.txt 中:
set(CMAKE_C_FLAGS_DEBUG "-I/usr/local/include/cmocka.h")
但是,为什么我必须手动进行呢?
我已经尝试了许多不同的安装方式:
到目前为止我所做的:
从这里下载 cmocka:这里。1.0 版。
tar xvf cmocka-1.0.1.tar.xzcd cmocka-1.0.1,mkdir build和cd buildsudo cmake ..
我在这里收到这样的消息:
-- 配置完成
CMake 警告(开发):
未设置策略 CMP0042:MACOSX_RPATH 默认启用。运行“cmake --help-policy CMP0042”以获取策略详细信息。使用 cmake_policy 命令设置策略并禁止显示此警告。
未为以下目标指定 MACOSX_RPATH:
cmocka_shared
此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。
问题#1:如何设置,rpath以便没有像上面那样的警告?
须藤
make须藤
make installcmocka现在应该安装了吧?
cmake为我正在使用cmocka库的程序运行。
所以现在我运行cmake我的程序,我的主CMakeList.txt文件有这样的行:
find_library (CMOCKA cmocka)
if (NOT CMOCKA)
message (WARNING "Cmocka library not found.")
endif (NOT CMOCKA)
但是在这个阶段警告没有出现,所以我相信它find_libarary(CMOCKA cmocka)已经成功地定位cmocka在我的电脑上。
为我的程序运行make。
运行时make出现如下错误:
fatal error:<br> 'cmocka.h' file not found<br> #include <cmocka.h> ^ 1 error generated.
所以估计cmocka是找不到了...
问题 #2:为什么cmocka找不到库?
补充笔记:
我试过跑步
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
但它没有帮助。我想这是 Linux 的解决方案,而不是 Mac。
我试图从他们的官方文档中了解
RAPTH有关 Mac 的信息:http: //www.cmake.org/Wiki/CMake_RPATH_handling。但是我了解的很少,我无法为我的问题提出解决方案。cmake我试过安装
cmockausingbrew但我得到了相同的结果。此外,我在 SO 上阅读了很多关于
RPATH、链接和的问题cmocka,但我也找不到合适的解决方案。不过,这里是相关线程的列表:我跑了
otool -L cmocka。这是我得到的:error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: cmocka (No such file or directory)