CMakeLists生成和载入动态链接库
生成动态链接库
新建一个文件夹,暂且命名为“makeDllLib”
文件夹中放入三个文件.c和.h和.def。其中.def文件是非必须的,但它有利于生成.lib文件和导出函数。
三个文件的内容如下:
/*ADD.cpp*/
#include "ADD.hpp"
int my_add(int a, int b) {
return a + b;
}
/*ADD.hpp*/
#pragma once
#ifndef __ADD_HPP__
#define __ADD_HPP__
extern "C" { //记得一定要加上这句,否者会生成一个很奇怪的函数符号
int my_add(int, int);
}
#endif
以下是ADD.def文件
第一行""中用库名就行,下面分别为导出的函数名,以及序号
LIBRARY "libMyAdd"
EXPORTS
my_add @1
编写CMakeLists.txt文件
project( makeDllLib ) # 随便给个项目名,不给也行
set(LIB_NAME libMyAdd) # 设置库名
set(SRC_List ADD.cpp ADD.hpp ADD.def)
add_library(libMyAdd SHARED ${SRC_List})
然后在makeDllLib文件夹中新建一个“build”文件夹,进去里面,让后cmd输入:
cmake .. -G “Visual Studio 15 2017 Win64”
-G 表示的是编译器
然后打