LINK:当使用 IMPORTED_IMPLIB 和 IMPORTED_LOCATION 的相对路径时,cmake 项目中出现致命错误 LNK1104

问题描述 投票:0回答:1
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.

c cmake dll shared-libraries import-libraries
1个回答
0
投票

IMPORTED_IMPLIB
IMPORTED_LOCATION
都需要完整(绝对)路径。

如果您想将路径固定到某物,请参阅以下变量并使用适合您上下文需要的变量:

例如

set_target_properties(collections PROPERTIES
    IMPORTED_IMPLIB "${PROJECT_SOURCE_DIR}/lib/Release/Collections.lib"
    IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/bin/Debug/Collections.dll"
)
© www.soinside.com 2019 - 2024. All rights reserved.