cmake_minimum_required(VERSION 3.25)
project(GarbageCollector C)
set(CMAKE_C_STANDARD 23)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
add_library(collections SHARED IMPORTED)
set_target_properties(collections PROPERTIES
IMPORTED_IMPLIB "lib/Release/Collections.lib"
IMPORTED_LOCATION "bin/Debug/Collections.dll")
add_executable(gc ./main.c)
target_link_libraries(gc collections)
LINK:致命错误 LNK1104。说无法打开 Collections.lib
当我尝试 cmake --build build 我得到链接:致命错误 LNK1104.
IMPORTED_IMPLIB
和IMPORTED_LOCATION
都需要完整(绝对)路径。
如果您想将路径固定到某物,请参阅以下变量并使用适合您上下文需要的变量:
CMAKE_SOURCE_DIR
PROJECT_SOURCE_DIR
<PROJECT-NAME>_SOURCE_DIR
CMAKE_CURRENT_SOURCE_DIR
CMAKE_CURRENT_LIST_DIR
例如
set_target_properties(collections PROPERTIES
IMPORTED_IMPLIB "${PROJECT_SOURCE_DIR}/lib/Release/Collections.lib"
IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/bin/Debug/Collections.dll"
)