我正在尝试在Mac OSX Yosemite 10.10.3上安装并运行cmocka
库进行单元测试,但是我在RPATH
设置时遇到了一些问题。
感谢@baf,我可以手动将cmocka.h
包含在我的CMakeLists.txt中,如下所示:
set(CMAKE_C_FLAGS_DEBUG "-I/usr/local/include/cmocka.h")
但是,为什么我必须手动完成?
我已经尝试了许多不同的安装方式:
从这里下载cmocka:here。版本1.0。
tar xvf cmocka-1.0.1.tar.xz
cd cmocka-1.0.1
,mkdir build
和cd build
sudo cmake ..
我在这里收到这样的消息:
- 配置完成
CMake警告(开发):
未设置策略CMP0042:默认情况下启用MACOSX_RPATH。运行" cmake --help-policy CMP0042"政策细节。使用cmake_policy命令设置策略并禁止显示此警告。
未为以下目标指定MACOSX_RPATH:
cmocka_shared
此警告适用于项目开发人员。使用-Wno-dev来抑制它。
rpath
以便没有像上面那样的警告? sudo make
sudo make install
cmocka
,对吗?
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
......
cmocka
库?我试过了
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
但它没有帮助。我想这是Linux的解决方案,而不是Mac。
我已尝试在RAPTH
中通过其官方文档http://www.cmake.org/Wiki/CMake_RPATH_handling在Mac上了解cmake
。How to set the runtime path (-rpath) of an executable with gcc under Mac OSX?。但是我理解得很少,而且我无法为我的问题找到解决方案。
我尝试使用cmocka
安装brew
但我得到的结果相同。
此外,我已经在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)
答案 0 :(得分:0)
当我将-I/usr/local/include
标志添加到调试标志时,我能够成功编译我的程序(感谢baf):
set(CMAKE_C_FLAGS_DEBUG "-std=gnu99 -Wall -pedantic -g -I/usr/local/include/cmocka.h")