CMake 的 find_library() 显然找不到库
CMake's find_library() apparently doesn't locate libraries
我希望CMake在同一文件夹中找到三个静态库。这是我的CMakeList的一部分.txt我正在努力:
# Dependencies' directories
set(OGRE3D_DIR "D:/Data/Libs/ogre3D-1.10")
# Required libraries
find_library(OGREMAIN_LIB
NAMES OgreMain OgreMain_d
HINTS "${OGRE3D_DIR}/lib/${CMAKE_BUILD_TYPE}")
find_library(OGREOVERLAY_LIB
NAMES OgreOverlay OgreOverlay_d
HINTS "${OGRE3D_DIR}/lib/${CMAKE_BUILD_TYPE}")
find_library(OIS_LIB
NAMES OIS OIS_d
HINTS "${OGRE3D_DIR}/lib/${CMAKE_BUILD_TYPE}")
# Target
add_executable(Test Main.cpp)
# Library linking
target_link_libraries(Test
${OGREMAIN_LIB}
${OGREOVERLAY_LIB}
${OIS_LIB})
出于某种原因,三个变量OGREMAIN_LIB
、OGREOVERLAY_LIB
和 OIS_LIB
都设置为 NOTFOUND,但如果我尝试打印它们,我发现它们被设置为预期的路径(即使是后缀和非后缀名称之间的正确路径也被选中(。显然,所有库实际上都在预期的路径中。
我在这里做错了什么?
像这样添加 ${CMAKE_SHARED_LIBRARY_PREFIX} 和 ${CMAKE_SHARED_LIBRARY_SUFFIX} 怎么样:
find_library(OGREMAIN_LIB
NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}OgreMain${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_SHARED_LIBRARY_PREFIX}OgreMain_d${CMAKE_SHARED_LIBRARY_SUFFIX}
HINTS "${OGRE3D_LIB_DIR}")
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- String.find() 在 C++ 中找不到任何内容时不会返回 -1
- map.find() 找不到键 C++
- set::find()找不到集合中的键
- 为什么 string.find( "</a>" ) 找不到"</a>"?
- 如果找不到任何内容,Serial.find 是否会清除缓冲区