【发布时间】:2025-07-17 20:55:01
【问题描述】:
我正在尝试将新库添加到使用 CMake 构建的项目中,但遇到了问题。我正在尝试关注this。我做了一个如下所示的测试项目:
cmake_test/
test.cpp
CMakeLists.txt
liblsl/
include/
lsl_cpp.h
CMakeLists.txt
liblsl64.dll
liblsl64.so
build/
cmake_test 中的 CMakeLists.txt 如下所示:
cmake_minimum_required(VERSION 3.10)
# set the project name and version
project(Tutorial VERSION 1.0)
# specify the C++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
add_executable(Tutorial test.cpp)
add_subdirectory(liblsl)
target_link_libraries(Tutorial PUBLIC ${LSL_LIBRARY})
liblsl 中的 CMakeLists.txt 如下所示:
find_path(LSL_INCLUDE_DIR lsl_cpp.h)
find_library(LSL_LIBRARY liblsl64)
include_directories(${LSL_INCLUDE_DIR})
但我不断收到错误No rule to make target '.../liblsl64.lib', needed by 'Tutorial.exe'. Stop.
知道我做错了什么吗?
如果这有什么不同的话,我正在使用 mingw-w64 v5.4.0 在 Windows 10 上。
【问题讨论】:
-
LSL_LIBRARY变量在您用于链接时的内容是什么?如果它指向.dll,那么您需要对应的.lib(不是静态库而是“导出”文件)才能执行链接。这就是错误消息所说的内容。 -
我设置了 LSL_LIBRARY 指向 .lib 文件