cmake find_program命令找不到lib.exe

x8goxv8g  于 2023-06-23  发布在  其他
关注(0)|答案(3)|浏览(120)

在我的CMake文件中,当在Windows上构建时,我需要在自定义命令中使用lib.exe将多个静态库组合成一个。我尝试使用find_program命令来查找可执行文件:

find_program(LIB_EXE NAMES lib.exe)

但它总是将变量设置为未找到。找到lib.exe的正确方法是什么?
[编辑]修复了NAME->NAMES,但程序仍然没有找到

kqqjbcuj

kqqjbcuj1#

正确的关键字是可以省略的名称。尝试添加S或完全删除关键字。
我想你实际上是在搜索程序NAME

rta7y2nd

rta7y2nd2#

检查构建目录中的文件CMakeCache.txt,并搜索“lib.exe”。
在那里,您可以找到“lib.exe”可以通过变量${CMAKE_AR}定位。

ndh0cuux

ndh0cuux3#

你可能需要像其他人提到的那样给CMake一些提示。对于使用visual studio的用户,lib.exe位于编译器目录中。因此,添加以下行应该可以解决您的问题:

get_filename_component(MSVC_BIN_DIR "${CMAKE_CXX_COMPILER}" DIRECTORY)
find_program(LIB_EXE NAMES lib.exe PATHS "${MSVC_BIN_DIR}" NO_DEFAULT_PATH)

message (STATUS ${LIB_EXE})

相关问题