我正在编写一个脚本并开始使用install
命令(用于复制文件),但它无法正常工作。 CMake configure / generate没有显示任何错误(即它没有停止,并且没有警告/错误显示与此命令相关)并且该命令似乎不起作用,因为我没有看到任何文件被复制。
由于我是新人,我想知道:
install
失败(源目录可能错误,或目标目录错误)?它似乎在默默地失败。install
?当我点击配置?或者当项目建成时?我在Windows上。
答案 0 :(得分:3)
对于一般性问题,有很多方法可以从CMake获得更详细的输出 - 我刚刚学会了第三个用于粗糙的错误:
message( STATUS "SQLITE3_LIB: ${SQLITE3_LIB} SQLITE3_PATH: ${SQLITE3_PATH}") # prints SQLITE3_LIB and SQLITE3_PATH variables
make VERBOSE=1
(使用make,ninja -v
使用忍者等),以帮助您排查流程问题,例如cmake -DYOUR_OPTION="insert values" ~/path/to/files/ && make VERBOSE=1
strace /usr/bin/cmake -E copy_directory $MY_SOURCE_PATH $MY_DEST_PATH
来了解副本失败的原因*我使用DLRdave's answer来解决其他问题以打印出INCLUDE_DIRS:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
答案 1 :(得分:1)
当您向CMakeLists.txt添加install
命令时,您将获得一个名为“install”的新目标。
为了实际安装所选的文件/目标,您需要构建此安装目标。它不会自动构建为“ALL”目标的一部分。
例如,如果您使用的是Visual Studio,则“安装”目标应出现在解决方案资源管理器的“CMakePredefinedTargets”文件夹中。只需选择此目标并构建它将导致构建解决方案并安装所选项目。
如果构建或安装过程的任何部分失败,则通知应该是明显的。