本人第一次使用cmake生成window库文件时,闹了一个很大的乌龙,具体如下
在此图中的build文件夹下生成了.a文件。
就很疑惑,我在windows平台啊,为什么会生成一个.a文件?
想过很多问题,就是没想过,这个.a文件是必须生成的;
在通过gpt查询后得到结果:
在Windows下使用GCC生成.dll文件时,使用
-Wl,--out-implib,libexample.a
选项会同时生成一个名为libexample.a的导入库文件。这个导入库文件通常用于在链接时指示编译器如何链接到生成的.dll文件。
这里的.a与.lib是相同的,生成.a的原因是因为我使用的编译器是mingw。
同样的情况也出现在使用mingw编译boost库时,想要在使用mingw编译器的同时获得.lib文件,可以依靠工具将.a文件转换为.lib文件。
cmake_minimum_required(VERSION 3.0.0)
project(testlib VERSION 0.1.0 LANGUAGES C CXX)
add_library(testlib /*缺少一个关键字*/ testlib.cpp)
正确的
//add_library(testlib SHARED testlib.cpp)