UBuntu CMake工程配置基礎
阿新 • • 發佈:2019-01-25
from linux info world pri bin cati rst 文檔
創建CMakeLists.txt文件,配置如下:
在同目錄下,運行cmake .
chenshu@chenshu-ubuntu:~/Ubuntu One/c++/cmake/examples/helloworld$ cmake .
— The C compiler identification is GNU
— The CXX compiler identification is GNU
— Check for working C compiler: /usr/bin/gcc
— Check for working C compiler: /usr/bin/gcc — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info - done
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info - done
— This is BINARY dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
— This is SOURCE dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
— Configuring done
— Generating done
— Build files have been written to: /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
Makefile以及其他一些文件被cmake生成了。執行make命令,hello二進制文件被編譯出來。運行./hello,可以看到結果。
Hello World from Main!
make VERBOSE=1 可以看到詳細的編譯過程。
make clean 就可以清理工程
install CMake
我用CMake並不關註它的跨平臺特性,因為我只專註於64位 Linux C++ server領域。
sudo apt-get install cmake
# cmake --version
cmake version 2.8.7
HelloWorld工程
mkdir -p examples/helloworld
cd examples/helloworld
創建main.cpp 文件,代碼如下:
#include <stdio.h>
int main()
{
printf("Hello World from Main!\n");
return 0;
}
創建CMakeLists.txt文件,配置如下:
PROJECT (HELLOWorld)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
在同目錄下,運行cmake .
chenshu@chenshu-ubuntu:~/Ubuntu One/c++/cmake/examples/helloworld$ cmake .
— The C compiler identification is GNU
— The CXX compiler identification is GNU
— Check for working C compiler: /usr/bin/gcc
— Check for working C compiler: /usr/bin/gcc — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info - done
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info - done
— This is BINARY dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
— This is SOURCE dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
— Configuring done
— Generating done
— Build files have been written to: /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld
Makefile以及其他一些文件被cmake生成了。執行make命令,hello二進制文件被編譯出來。運行./hello,可以看到結果。
Hello World from Main!
make VERBOSE=1 可以看到詳細的編譯過程。
make clean 就可以清理工程
外部構建
HelloWorld采用內部構建,cmake產生的代碼和自己的源代碼文件在同一個目錄,非常不好。因此需要采用cmake的外部構建方式。
創建helloworld2目錄
這次創建一個src目錄存放源代碼,doc目錄存放項目文檔,
CMakeLists.txt需要出現在項目根目錄和src目錄中。
項目根目錄下的內容如下:
project (HelloWorld2)
add_subdirectory(src bin)
src目錄下內容如下:
add_executable(hello2 main.cpp)
創建一個build目錄
cd build
cmake ..
make
build/bin下會找到hello2可執行文件。
支持gdb調試
在src/CMakeLists.txt文件中添加一行: set(CMAKE_BUILD_TYPE Debug)
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow
UBuntu CMake工程配置基礎