将已编译的.res文件与CMake链接

Big*_*ith 6 c++ resources cmake

我正在尝试将已编译的.res文件与cmake链接,但我似乎无法找到有关如何执行此操作的详细信息.

我最接近的是

SET(RESOURCE_FILE resource.res)

file(GLOB src_files 
"src/*.h"
"src/*.cpp"
"${RESOURCE_FILE}"
)

add_executable(exename  ${src_files})
Run Code Online (Sandbox Code Playgroud)

然后通过IDE手动链接.res文件(即在visual studio中删除链接器附加依赖项中的.res文件).这意味着每次更改cmake文件时都必须重置附加依赖项.当然有一种比这更好的方法

原谅我对cmake的经验不足,任何帮助都会受到赞赏.

小智 7

默认的 lib 扩展名有点棘手,但您可以执行以下操作:

# ...
ADD_EXECUTABLE( FOO ${FOO_SRCS} )
TARGET_LINK_LIBRARIES( FOO ${FOO_LIBS} )
SET( FOO_LINKFLAGS ${CMAKE_CURRENT_SOURCE_DIR}/foo.res )
SET_TARGET_PROPERTIES( FOO PROPERTIES LINK_FLAGS ${FOO_LINKFLAGS} )
Run Code Online (Sandbox Code Playgroud)

这将在 MSVC 中显示为附加的 [链接器] 选项(而不是依赖项)。希望有帮助。

如果还有其他LINK_FLAGS定义,您可能需要先将它们存储在 中FOO_LINKFLAGS,然后追加新的。