admin 管理员组文章数量: 886993
目录
安装cmake
windows下cmake命令使用注意事项
用cmake生成和使用动态链接库
1.生成动态库
2.使用动态链接库
安装cmake
下载cmake,官网地址:Download CMake 。推荐Binary distributions的下的版本.msi。比如我选择Windows x64 Installer对应msi安装文件。
双击安装到对应路径,将 bin 的路径添加到环境变量。
在 cmd 中输入:cmake --version,如显示版本信息,则安装成功。
windows下cmake命令使用注意事项
在windows下使用CMake指令的时候, 需要指定编译器为MinGW,使用参数【-G "MinGW Makefiles"】
【cmake -G "MinGW Makefiles" CMakeLists.txt文件所在目录】或者【cmake CMakeLists.txt文件所在目录 -G "MinGW Makefiles" 】。
然后就会生成makefile文件。
如果没有生成makefile文件,一般是因为编译器选择的问题,很有可能选择到了vs的编译器MSVC*
解决办法是:使用cmake .. -G "Unix Makefiles" 改编译器为GNU的才行。
随后执行“mingw32-make”或“make”生成目标文件或可执行文件。如果出现“mingw32-make”或“make”命令不可用,则可能是未安装或者未添加到环境变量,参考windows下安装gcc和make-CSDN博客
用cmake生成和使用动态链接库
1.生成动态库
注意事项: 工程路径下面一定不能有中文, CMake不支持中文路径.
文件结构如下:
我们打算把mymax.cpp和myadd.cpp封装为动态库
CMakeLists.txt
# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.20)
# 设置工程名称
PROJECT(mathdll)
# 设置头文件目录
include_directories("./include")
# 源文件列表存储进SRC变量
# aux_source_directory(src SRC)
# 创建变量SRC 源码文件
SET(SRC ./src/mymax.cpp ./src/myadd.cpp)
# 添加构建目标, 动态链接库 名字叫做mymath
# 最后在Windows下生成 动态链接库 libmymath.dll
ADD_LIBRARY(mymath SHARED ${SRC})
# 设定动态链接库的存储路径
# PROJECT_BINARY_DIR 在哪个目录下运行cmake命令,这个宏变量就取那个目录
# PROJECT_SOURCE_DIR CMakeLists.txt所在的目录
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../lib)
2.使用动态链接库
代码文件结构
- 主代码:/src/test.cpp
- myadd.cpp和mymax.cpp被封装成了库libmymath.dll
- mymin.cpp没有被封装成库
编写CMakeLists.txt
# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.20)
# 设置工程名称和版本
PROJECT(testMyMath VERSION 1.0)
# 设置头文件目录
include_directories("./include")
# 库文件目录
link_directories(./lib)
# 创建变量SRC 源码文件
SET(SRC ./src/mymin.cpp ./src/test.cpp)
# 添加可执行程序myMathTest
ADD_EXECUTABLE(myMathTest ${SRC})
# 添加动态链接库
TARGET_LINK_LIBRARIES(myMathTest libmymath.dll)
然后生成可执行文件
cd build
cmake .. -G "Unix Makefiles"
make
执行可执行文件时,直接执行会什么都没有
解决办法是将动态库复制到可执行文件所在目录
或者设置PATH环境变量
windows
set PATH=YOUR_LIB_PATH;%PATH%
# example: set PATH=D:\install\PCL 1.10.0\bin;%PATH%
set PATH=C:\Users\Tookie\Desktop\c_cpp\lib;%PATH%
linux
export LD_LIBRARY_PATH=YOUR_LIB_PATH:$LD_LIBRARY_PATH
# example:export LD_LIBRARY_PATH=~/install/realsense/lib:$LD_LIBRARY_PATH
然后再运行就不一样了。
end
版权声明:本文标题:windows下cmake安装和使用教程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1731774694h1504224.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论