CMake:从定义文件生成导入库

时间:2019-12-02 21:30:08

标签: visual-c++ dll cmake import-libraries

我正在使用CMake为MSVC构建项目。

我只拥有一个.def文件,该文件具有dll库中导出的功能。我的项目无权访问dll或源代码。我需要一个导入库来消除未解决的外部问题。我要为其构建项目的SDK仅使用头文件和导入库。但是,某些库并未构建,因此我必须单独构建它们而没有源代码或DLL库(它们与产品包装在一起,而不与SDK捆绑在一起)。

我可以使用以下命令构建导入库,我将其用作VS项目中的预链接事件:

lib /def:<def path> /OUT:<lib name> /MACHINE:<machine type>

CMake也有办法吗? 我已经尝试过以下命令:

add_library(Ilib STATIC empty.cpp expfile.def)
add_library(Ilib SHARED empty.cpp expfile.def)
add_library(Ilib STATIC expfile.def)
set_target_properties(Ilib PROPERTIES LINKER_LANGUAGE CXX)

但是它们都不起作用。

我认为,唯一的解决方案是创建一个execute_processadd_custom_command命令。

0 个答案:

没有答案