为了便于跨平台(甚至只是跨机器),不建议指定具体的库目录,而是使用 find_package 让 CMake 去寻找这个库。当然 find_package 没有带对应的 .cmake 模块的时候,可以用 pkg_config 代替。
对于 boost,只要使用 find_package 即可。如:
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.57.0 COMPONENTS log thread system regex REQUIRED)
就是指定了使用静态链接的 boost,并尝试寻找 boost 的 log, thread, system, regex 这些库。
然后再使用 target_link_libraries(MyTarget ${Boost_LIBRARIES}) 就可以指定让 MyTarget 这个目标链接到找到的库。
1、先要安装编译器notepad++只是一个文本编辑器,本身没有编译C/C++的功能。所以要想先配置,就要先装上一个编译器。我是用的是MinGW(但是它不只是一个编译器这么简单,可以简单地理解成是一个开发工具包,我们只是利用了其中的一些开发工具)。2、设置环境变量什么是环境变量,我也不清楚,不懂的可以自己去查一下资料,回头我也去脑补。我们先设置环境变量。在(系统属性-->高级-->环境变量-->系统变量中)(以下目录都根据自己的电脑MinGW所在位置不同而改变)在PATH的值中加入“D:/MinGW/bin”(如果没有就新建一个PATH)。如果PATH中还有其他内容,需要用英文状态下分号进行分割。这是寻找gcc编译器的路径。(这一步中PATH的值根据你的MinGW安装的路径设定,要能够访问的gcc编译器,也就是MInGW安装目录里面的bin文件夹)新建LIBRARY_PATH变量,在其值中加入“D:/MinGW/lib”。这是标准库存放的路径。新建C_INCLUDE_PATH变量,在其值中加入“D:/MinGW/include”。这是Include查找头文件的路径。设置结束之后,在cmd控制台窗口下面,输入gcc-v。若已经成功安装好,会显示gcc的版本信息。3、设置notepad++环境变量设置成功之后,接下来我们就是设置notepad++,为其加上编译,运行,甚至调试的功能,我是添加了编译和运行两个。打开notepad++,选择菜单栏的“运行》运行”,或者直接按“F5”,可以看到如下:然后再一次输入下列命令编译:cmd/kg++.exe-g-W-Wall-o$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。运行:cmd/k$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。注意事项:引号的使用是为了适用于文件名或者路径中带有空格的情况,一定不能省略。&PAUSE含义是命令运行后暂停等待键盘 *** 作&EXIT含义是完成后退出运行窗口,回到notepad++gcc的bin目录已经之前在系统环境变量中进行过设定,否则需要补全gcc命令的绝对路径。(很简单,将"g++.exe"换成"D:/MinGW/bin/g++.exe",还是要参照你安装的路径)当在mac系统下编写c++程序时候,一般需要使用Xcode。如果不想装Xcode如何编译、运行程序呢?
一种方法是编写makefile文件,用makefile文件管理程序脚本之间的相互依赖关系
一、CMake是一种跨平台编译工具,比make更为高级。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序
二、cmake 指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录
cmake会生成很多中间文件,所以建议新建一个文件夹存放,分四个步骤:
1、mkdir bulid //新建文件夹存放编译的中间文件
2、cd bulid //进入bulide文件夹
3、cmake .. //因为CMakeLists.txt文件在当前目录的外面,所以cmake命令需要使用cmake ..
4、make //make命令根据makefile文件编译源码,在bulid目录下生成一个可执行文件,运行获取结果
CMakeLists.txt主要包含以上的7个步骤:
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.13)
#2.project name,指定项目的名称,一般和项目的文件夹名称FirstProject对应
PROJECT(FirstProject)
#3.head file path,头文件目录
INCLUDE_DIRECTORIES()
#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH)
#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#7.add link library,添加可执行文件所需要的库(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)