内容简介:点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~程序环境:ubuntu 16.04 _x64继续我们上次的内容,这次主要添加对多个文件的处理、共享库的创建及链接。
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~
程序环境:ubuntu 16.04 _x64
继续我们上次的内容,这次主要添加对多个文件的处理、共享库的创建及链接。
一、 处理多文件情况
1. 文件结构
moreFile文件夹下分别是 build 、 src 文件夹以及主 CMakeLists.txt 文件
src文件夹是 main.cpp 、子 CMakeLists.txt 文件以及其他源文件和头文件
2. 源码例子
add.h
#pragma once
class Add
{
public:
int add(int x, int y);
};
add.cpp
#include "add.h"
#include <iostream>
int Add::add(int x, int y)
{
int ret = x + y;
std::cout << "********" << ret << std::endl;
return ret;
}
3. 处理多文件时makefile文件的改变
cmake_minimum_required(VERSION 3.5)
#PROJECT(second)
#ADD_EXECUTABLE(hello main.cpp)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
add_executable(myProject ${DIR_SRCS}) #命令名不区分大小写,参数需区分大小写
#可打印调试及警告信息
message("<<<<<<<<< debug !!!>>>>>>>>
其他流程与上次操作相同,这里不再赘述。
二、 生成共享库
1. 文件结构
2. 子makefile文件
cmake_minimum_required(VERSION 3.5)
#设置此工程的源码
set(SRC add.cpp)
#设置输出的库的类型(SHARED)和名字(add)
add_library(add SHARED ${SRC})
message("<<<<<<<<<<<< Create Lib !>>>>>>>>>")
3. 生成共享库效果
三、 共享库的链接
1. 文件结构
2. 子makefile文件及main.cpp
把之前一些小功能结合一下
cmake_minimum_required(VERSION 3.5)
#被链接的库相对路径
link_directories(../src/libs/lib)
#被链接库的头文件相对路径
include_directories(../src/libs/inc)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
add_executable(myProject ${DIR_SRCS})
#说明被链接库的名称 add
target_link_libraries(myProject add)
main.cpp
#include "add.h"
#include "sub.h"
#include <iostream>
int main()
{
Sub sub;
sub.sub(1,2);
Add add;
add.add(1,1);
std::cout << "Hello, world!" << std::endl;
return 0;
}
3. 运行效果
四、 小结
至此,一些简单的makefile文件编写已经可以完成了。其他功能可以类比学习,如设置共享库版本号、版本判断信息的输出等。 makefile 文件也是一种程序,其他更深入的编程可以根据自己需要进行学习,祝好!
知识的学习与积累需要不断总结与提炼。
我们穷极一生,难道不是为了自圆其说么(体系与模型的搭建 ) ?
欢迎大家关注公众号:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- SQLServer之创建链接服务器
- 静态链接和动态链接
- linux中硬链接、软链接的建立
- 微信公众号开发C#系列-10、长链接转短链接
- linux – 硬链接或软链接占用文件系统中的任何空间吗?
- Linux 环境下 gcc 链接库 编译、链接(概览) 以及 自动化工具Makefile的编写
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ActionScript 3.0 Cookbook
Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50
Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!