Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在CMAKE或CMAKE gui中设置CMAKE_前缀_路径_Cmake_Cmake Gui - Fatal编程技术网

无法在CMAKE或CMAKE gui中设置CMAKE_前缀_路径

无法在CMAKE或CMAKE gui中设置CMAKE_前缀_路径,cmake,cmake-gui,Cmake,Cmake Gui,我想使用CMAKE\u PREFIX\u PATH为CMAKE设置一个目录(比如/usr/local2),以搜索标题和库。我试图使用命令行 cmake -DCMAKE_PREFIX_PATH=/usr/local2 /path/to/src 但是cmake似乎没有接受这个提示(即它仍然在系统路径/usr/local中找到了库)。我还尝试了ccmake和cmake gui,但都没有提供要编辑的cmake\u PREFIX\u路径条目。当我搜索“PREFIX”时,唯一显示的是CMAKE\u INS

我想使用
CMAKE\u PREFIX\u PATH
CMAKE
设置一个目录(比如
/usr/local2
),以搜索标题和库。我试图使用命令行

cmake -DCMAKE_PREFIX_PATH=/usr/local2 /path/to/src
但是
cmake
似乎没有接受这个提示(即它仍然在系统路径
/usr/local
中找到了库)。我还尝试了
ccmake
cmake gui
,但都没有提供要编辑的
cmake\u PREFIX\u路径
条目。当我搜索“PREFIX”时,唯一显示的是
CMAKE\u INSTALL\u PREFIX
。我看的地方不对吗?还是在安装
cmake
时遗漏了什么

我使用的是
cmake
3.1.3版(也尝试了3.0.2版),它与MacPorts一起安装。我记得在“高级”框中勾选了所有选项

我的
CMakeLists.txt
文件非常简单

cmake_minimum_required (VERSION 3.0)
project (my_project CXX)
find_package (PNG REQUIRED)
include_directories (${PNG_INCLUDE_DIRS})
add_executable (my_executable test.cc)
target_link_libraries (my_executable ${PNG_LIBRARIES})
我还确保
/usr/local2/lib
包含要搜索的
cmake
libpng.dylib

cmakcache.txt
文件中,我发现

//No help, variable specified on the command line.
CMAKE_PREFIX_PATH:UNINITIALIZED=/usr/local2

提前感谢您的帮助

我相信,如果您创建一个
/usr/local2/lib
目录,并将
libpng.dylib
放在那里(而不仅仅是
/usr/local2
),cmake应该能够找到它。建议只使用
CMAKE\u PREFIX\u PATH
作为基础。

您能分享您的项目CMakeLists.txt吗?另外,您是否在构建目录中的CMakeCache.txt文件中看到CMAKE_PREFIX_PATH条目?您发布的cmake命令应该在缓存中设置了一个条目,当您切换“高级”框时,该条目会显示出来。@atsui感谢您的回复。请查看我对
CMakeLists.txt
CMakeCache.txt
文件的编辑。是的,这就是我放置
libpng.dylib
的地方。我有一个o型的问题,并修复了它。谢谢你指出。但是
cmake
仍然无法使用
cmake\u PREFIX\u PATH
提示找到它。顺便说一句,如果我将
CMAKE\u BUILD\u PREFIX
设置为
/usr/local2
,它将找到并链接到那里的库。我不认为设置
CMAKE\u BUILD\u PREFIX
有效果,因为它不是CMAKE特殊变量。至少我不能让它在一个干净的环境中为我工作。我认为如果您已经缓存了
/usr/local/lib/libpng.dylib
,那么
cmake
可能不会做任何事情。您是否尝试过清除生成目录并进行干净的生成?实际上,我的意思是
CMAKE\u INSTALL\u PREFIX
。很抱歉给你带来了困惑。我试图从头开始创建一个构建目录,但似乎没有帮助。