cmake3安装
add_subdirectory — CMake 3.0.2 Documentation
cmake(7):find_package命令详解_cmake find_package_翔底的博客-CSDN博客
CMake系列讲解(入门篇)1.6 基础命令CMake-include_directories()_cmake include directory-CSDN博客
echo '[group_kdesig-cmake3_EPEL]
name=Copr repo for cmake3_EPEL owned by @kdesig
baseurl=https://copr-be.cloud.fedoraproject.org/results/@kdesig/cmake3_EPEL/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/@kdesig/cmake3_EPEL/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1' >> /etc/yum.repos.d/cmake3.repo
yum install jsoncpp -y
yum install -y cmake3
cmake3 -v
手动安装cmake-3.17.1-Linux-x86_64.tar.gz
解压到/usr/local/cmake-3.17.1-Linux-x86_64
ln -s /usr/local/cmake-3.17.1-Linux-x86_64/bin/cmake /usr/local/bin/cmake
]# cmake --version
cmake version 3.17.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
[root@localhost cmake-3.17.1-Linux-x86_64]#
CMake学习(六) —— if 和 else
CMake学习(六) —— if 和 else_万俟淋曦的博客-CSDN博客_cmake if else
(646条消息) 让cmake显示gcc/g++的编译信息_cmake显示编译信息_Tommy_wxie的博客-CSDN博客
让make更透明些
make顺利的执行成功了,也得到了我们期待的“hello world”。但是make的信息太简单了,感觉空落落的。以前的Makefile可都是打印出gcc 等详细编译过程的哦。
不要担心,make的时候加个参数就行了。
make VERBOSE=1
这样你就可以在编译信息里面看到你想要的详细的gcc/g++的编译参数了。比如:
[100%] Building C object CMakeFiles/hello.dir/main.c.o
/usr/bin/cc -o CMakeFiles/hello.dir/main.c.o -c /home/study/program/cmake/hello/main.c
Linking C executable hello
什么,要在make的时候写参数。太不友好了。cmake知道你懒,所以也帮你搞定了。在CMakeLists.txt里面加上这句指令就可以了。
set(CMAKE_VERBOSE_MAKEFILE ON)
cmake 添加-g 编译选项的几种方式_makefile添加编译选项-CSDN博客
第一种
修改CMakelist.txt, 添加“add_definitions("-Wall -g")”行;
第二种
执行cmake时,添加-DCMAKE_BUILD_TYPE=Debug编译选项。
cmake -DCMAKE_BUILD_TYPE=Debug ......
建议使用第二种,可以不用改变CMakelist.txt。
cmake编译生成的makefile如何打印详细信息呢
———————————
CentOS 7 源码安装 CMake 3.15.5 最新稳定版。解决
CentOS 7 安装 CMake 3.15.5 最新稳定版 | 24K PLUS
wget https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz
tar -zxf cmake-3.15.5.tar.gz
cd cmake-3.15.5
./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make
sudo make install
cmake --version
ubuntu 20.04安装(升级)cmake - 知乎 (zhihu.com)
sudo apt-get -y install libssl-dev
sudo ./configure
sudo make -j8
sudo make install
cmake --version
卸载
sudo make uninstall
(525条消息) cmake笔记_cmake deprecation warning at cmakelists.txt:1 (cma_森明帮大于黑虎帮的博客-CSDN博客
现在使用cmake的项目越来越多,学习了解下。
其实,cmake和autotools正是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。
#CMAKE_SOURCE_DIR是cmake内置变量表示当前项目根目录
CMake使用入门笔记( 1 ) BuildSystem的三个指令 --- 更新中 - error408 - 博客园
接着在同级目录下创建cmake文件 CMakeLists.txt
为了代码干净,同级目录下创建build目录,进入build目录,执行“cmake ./”命令来生成Makefile文件,接着执行命令make编译,最后build目录下生成二进制文件example_01, 执行程序可以输出打印信息。
mkdir build
cd build
cmake ../
make
-B build -B <path-to-build> 指定Build Tree路径,不存在则创建
cmake . -Bbuild
vi ./CMakeFiles/viid_server.dir/build.make
找到
/opt/rh/devtoolset-7/root/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/viid_server.dir/mnt/hgfs/liantong/code/nvr-server/03-server/xxxxx/source/xxxxx.cpp.o -c /mnt/hgfs/liantong/code/nvr-server/03-server/xxxxx/source/xxxx.cpp
./CMakeFiles/viid_server.dir/flags.make:CXX_INCLUDES = -
./CMakeFiles/viid_server.dir/DependInfo.cmake: "../../../../common_tool/plan/plan"
排错
CmakeLists编写
Cmake知识----编写CMakeLists.txt文件编译C/C++程序 - horsetail - 博客园
CMakeLists编写_lanlian7的博客-CSDN博客_cmakelist怎么写
C++ 项目 使用 CMAKE 和 GOOGLE TEST(傻瓜式教程)
C++ 项目 使用 CMake 和 Google Test(傻瓜式教程) - 灰信网(软件开发博客聚合)
./CMakeFiles/xxxxx.dir/link.txt:目录里查找 使用到的lxxx库
vim ./CMakeFiles/xxxxx.dir/depend.make 查找依赖的头文件
t.dir/depend.make:CMakeFiles/secret.dir/mnt/hgfs/liantong/code/nvr-server/03-server/common_tool/secret/source/secret.cpp.o: ../../include/secret.h
./CMakeFiles/secret.dir/DependInfo.cmake:# The include file search paths:
./CMakeFiles/secret.dir/DependInfo.cmake: "../../include"
./CMakeFiles/secret.dir/DependInfo.cmake: "../../../../../01-common/include/system"
./CMakeFiles/secret.dir/DependInfo.cmake: "../../../../../01-common/include/cbb"
./CMakeFiles/secret.dir/DependInfo.cmake: "../../../base/include"
./CMakeFiles/secret.dir/flags.make:CXX_INCLUDES = -I/mnt/hgfs/liantong/code/nvr-server/03-server/common_tool/secret/prj_linux/../include -I/mnt/hgfs/liantong/code/nvr-server/03-server/common_tool/secret/prj_linux/../../../../01-common/include/system -I/mnt/hgfs/liantong/code/nvr-server/03-server/common_tool/secret/prj_linux/../../../../01-common/include/cbb -I/mnt/hgfs/liantong/code/nvr-server/03-server/common_tool/secret/prj_linux/../../base/include
[root@localhost build]# vim ./CMakeFiles/secret.dir/build.make
[root@localhost build]#
查找宏定义
g]# grep USE_CUT_FRAME ./ -rs
./CMakeCache.txt:USE_CUT_FRAME:UNINITIALIZED=true
./CMakeFiles/gbplat.dir/DependInfo.cmake: "USE_CUT_FRAME"
./CMakeFiles/gbplat.dir/flags.make:CXX_DEFINES = -DCROW_CHANGE -DUSE_CUT_FRAME -D_DEBUG -D_LINUX_
[root@localhost build-debug]#
.o: undefined reference to symbol 'pthread_rwlock_destroy@@GLIBC_2.2.5'
添加-lpthread
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wall")
指定输出路径
set(EXECUTABLE_OUTPUT_PATH ${CURDIR})
#set(EXECUTABLE_OUTPUT_PATH ${CURDIR}/../../)
cmake添加相对路径
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} DIRECTORY)
cmake之 ADD_LIBRARY()
cmake之 ADD_LIBRARY()_ve2102388688的博客-CSDN博客_add_library
SET(LIBHELLO_SRC hello.c)
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC})
多目录工程的CmakeLists.txt编写(自动添加多目录下的文件)
https://lightsail.blog.csdn.net/article/details/70313350
cmake学习3--多个目录 多个源文件_南山二毛的博客-CSDN博客