cmake find_program命令找不到 lib.exe



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

find_program(LIB_EXE NAMES lib.exe)

但它始终将变量设置为未找到。找到lib.exe的正确方法是什么?

[编辑] 修复了名称>名称,但仍然找不到该程序

正确的关键字是可以省略的 NAMES。尝试添加 S 或完全删除关键字。

我认为您实际上是在搜索该程序NAME

检查构建目录中的文件 CMakeCache.txt,然后搜索"lib.exe"。

在那里你可以找到"lib.exe"可以通过变量${CMAKE_AR}找到。

正如其他人提到的,您可能需要向 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})

最新更新