我正在尝试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.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 来抑制它。
问题#1:如何设置,rpath
以便没有像上面那样的警告?
须藤
make
须藤
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
是找不到了...
问题 #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
我试过安装
cmocka
usingbrew
但我得到了相同的结果。此外,我在 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)