我正试图在MacOSXYosemite10.10.3上安装和运行cmocka库以进行单元测试,但是在设置上遇到了一些问题。
更新:
由于@baf,我能够手动将cmocka.h包括在CMakeLists.txt中,如下所示:
set(CMAKE_C_FLAGS_DEBUG "-I/usr/local/include/cmocka.h")然而,,为什么我必须手动执行呢?
我已经尝试过许多不同的安装方法:
我到目前为止所做的事:
tar xvf cmocka-1.0.1.tar.xzcd cmocka-1.0.1、mkdir build和cd buildsudo cmake ..
我在这里收到这样的信息:-配置已完成 CMake警告(dev): 未设置策略CMP0042 :默认情况下启用MACOSX_RPATH。运行"cmake --help-policy CMP0042“以获取策略细节。使用cmake_policy命令设置策略并取消此警告。 未为下列目标指定MACOSX_RPATH: cmocka_shared 此警告是针对项目开发人员的。使用-Wno-dev来抑制它。
问题1:我如何设置rpath,使没有像上面这样的警告?
makemake 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时,会得到如下错误:
致命错误:“cmocka.h”文件未找到#包括生成的 ^1错误。
所以我想cmocka是找不到的。
问题2:为什么找不到cmocka库?
补充说明:
但没什么用。我想这是Linux的解决方案,而不是Mac。
cmake的官方文档中了解cmake上的处理。然而,我对此知之甚少,无法找到解决问题的办法。cmocka安装brew,但结果是相同的。RPATH、链接和cmocka的问题,但我也找不到合适的解决方案。然而,以下是相关线程的列表:- [How to set the runtime path (-rpath) of an executable with gcc under Mac OSX?](https://stackoverflow.com/questions/4513799/how-to-set-the-runtime-path-rpath-of-an-executable-with-gcc-under-mac-osx)
- [https://stackoverflow.com/questions/29721183/getting-undefined-symbols-for-architecture-x86-64-when-trying-to-build-on-osx](https://stackoverflow.com/questions/29721183/getting-undefined-symbols-for-architecture-x86-64-when-trying-to-build-on-osx)
- [How to configure scons to link using rpath on mac?](https://stackoverflow.com/questions/30271791/how-to-configure-scons-to-link-using-rpath-on-mac)
- [mariadb install failure: make (Mac OSX 10.6.8)](https://stackoverflow.com/questions/28043292/mariadb-install-failure-make-mac-osx-10-6-8)
otool -L cmocka。我得到的是:
错误: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool:无法打开文件: cmocka (没有这样的文件或目录)发布于 2016-08-31 22:07:28
当我将-I/usr/local/include标志添加到调试标志中时,我成功地编译了我的程序(感谢baf):
set(CMAKE_C_FLAGS_DEBUG "-std=gnu99 -Wall -pedantic -g -I/usr/local/include/cmocka.h")https://stackoverflow.com/questions/30697107
复制相似问题