cmake入门之一:编译、INSTALL及shell语句-创新互联

cmake入门之一:编译、INSTALL及shell语句
  • 1.创建相应文件
    • 1.1 工程目录下CMakeLists.txt
    • 1.2 src文件夹
      • 1.2.1 src文件夹下main.c
      • 1.2.2 src文件夹下CMakeLists.txt
    • 1.3 runhello.sh
    • 1.4 其他文件/文件夹
  • 2.编译
  • 3.查看结果
  • 参考文献

在学习cmake-practice这本书中的demo时,发现有个别没跑通的地方,调了半天,在此记录。

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都酒楼设计小微创业公司专业提供企业网站建设营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

以下示例对应于书中/backup/cmake/t2

1.创建相应文件

创建好的文件目录树显示如下:

在这里插入图片描述

1.1 工程目录下CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
Project(HELLO)
add_subdirectory(src bin)
INSTALL(FILES COPYRIGHT README DESTINATION share/doc/cmake/t2)
INSTALL(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)
INSTALL(PROGRAMS runhello.sh DESTINATION bin)
INSTALL(PROGRAMS build/bin/hello/ DESTINATION bin)

其中:

add_subdirectory(src bin) 源文件目录为src 二进制文件目录为bin

除了书中列出来的几个INSTALL命令,尚需增加下面这一条命令,才可以将目标文件也安装到目标文件夹下:

INSTALL(PROGRAMS build/bin/hello/ DESTINATION bin)
1.2 src文件夹 1.2.1 src文件夹下main.c
//main.c
#includeint main()
{printf("Hello World from t1 Main!\n");
        return 0;
}
1.2.2 src文件夹下CMakeLists.txt
add_executable(hello main.c)
1.3 runhello.sh
./hello

注意这里要修改成目标文件相应的路径。

1.4 其他文件/文件夹

其他文件夹COPYRIGHT,README以及doc/hello.txt均为注释文件,可根据自己需要编辑。

2.编译
mkdir build
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/tmp/t2/usr ..
make
make install

若未通过-DCMAKE_INSTALL_PREFIX指定路径,默认为:/usr/local

3.查看结果

进入CMAKE_INSTALL_PREFIX自定义的安装路径,查看其目录树:

在这里插入图片描述
执行命令:

$cd /tmp/t2/usr/bin
$sh runhello.sh 
#Hello World from t1 Main!
$ ./hello 
#Hello World from t1 Main!

编译和安装目前已经完成了!

参考文献

[1] github.com/Akagi201/learning-cmake

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:cmake入门之一:编译、INSTALL及shell语句-创新互联
网站URL:http://pwwzsj.com/article/dgjeog.html