cmake实战第二篇:让我们的代码更像个工程
为工程添加以下文件夹:
bin 用来放编译好的可执行二进制文件。
src 用来放源代码。
lib 用来放编译好的库文件。
include 用来放头文件。
lib 用来放编译好的库文件。
include 用来放头文件。
sudo mkdir -p /code_test/cmake cd /code_test/cmake sudo mkdir p2 cd p2 sudo mkdir bin src lib include
touch CMakeLists.txt //要把目录结构告诉cmake。所以在代码根目录下写一个CMakeLists.txt。cmake在生成代码时,会读这个文件,并按照它来编译你的代码。
在src目录下建个main.cpp文件
//main.cpp文件
#include <iostream> using namespace std; int main(int argc, char**argv) { cout<<"Hello Cmake!"<<endl; return 0; }
//src目录下的CMakeLists.txt:
ADD_EXECUTABLE( main main.cpp )
//根目录下的CMakeLists.txt:
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本
PROJECT( HELLO)
SET( CMAKE_CXX_COMPILER "g++") #设定编译器
SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#设定存放编译出来的库文件的目录
SET( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#并且把该目录设为连接目录
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib)
#设定头文件目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include)
#增加子文件夹,也就是进入源代码文件夹继续构建
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src)
编译:
mkdir build
cd build
cmake ..
make
到bin文件夹下
cd ..
cd bin
运行:
./main