C++ Makefile文件编写
对现有的一个C++动态库文件和调用程序,分别编写Makefile文件,从零开始,这里把自己弄明白的一些东西分享给大家。
1、必须明确Linux下,C++的编译器是g++,C语言的是gcc。网上大多数又是以.c文件编写的makefile示例,所用的编译器是gcc,如果C++写成了gcc,C语言中没有类,会显示class未知的定义错误。
2、当有一个或多个动态库时,应该为每个动态库都写一个Makefile文件,为调用动态库的程序写一个Makefile文件,而不是写在一起,这样才方便之后的修改维护。
3、Makefile的基本语句是确定的,当我们要使其易修改时,会预先定义一些变量,代表文件所在的路径,其实路径是可以组合的,我们要写的就是让编译器能找到需要的文件。
介绍我需要写makefile文件时的情况。一个动态库文件,动态库文件中引用了外部的头文件。Makefile文件执行编译的时候,先将.cpp文件转换成.o文件,在这个构成中依赖.cpp文件(源文件),以及.cpp中引用了的头文件。
一句句解释上面这个为动态库文件写的Makefile文件:
1' CC指定编译器是g++,代表C++编译器,后面出现的CC都表示g++;
2' INCLUDE指定头文件路径,一般的,程序自己写的头文件用相对路径,如果不是把动态库文件的头文件复制到自己写的工程文件中的话,就用绝对路径指向动态库文件的头文件;有多个头文件路径需要添加时,在路径前添加-I,不要有空格;
3' DLL_OBJ代表要生成的动态库文件
4' 5' 设定目录
C++ Makefile文件编写的更多相关文章
- 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...
- Linux Makefile文件编写详细步骤与实践
Linux Makefile文件编写详细步骤与实践 1.makefile概述 Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不会 ...
- 一个简单的makefile文件编写
下午闲来无聊,就打开很久没动过的linux系统想熟悉熟悉在linux上面编译代码,结果一个makefile文件搞到晚上才搞定,哈哈! 先把代码简单贴上来,就写了一个冒泡排序: sort.h: #ifn ...
- 转:SYNOPSYS VCS Makefile文件编写与研究
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:mak ...
- .c文件如何编译为ko的MAKEFILE文件编写
首先需要知道: obj-m = *.o obj-y = *.o 上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件. 生成KO文件,分两种情况:单个.c文件和多个.c文 ...
- linux与Windows使用编译区别及makefile文件编写
一.Windows与:Linux嵌入式开发区别 Windows下编辑.编译.执行 编辑: sourceInsight:ADS: 编译:指定链接地址,指定链接顺序,编译 执行:烧写到单板再启动 Linu ...
- makefile文件编写
文件转载自:http://www.cppblog.com/lapcca/archive/2010/11/26/134714.html 下面这篇文章讲的很清楚,基本的用法也很简单. 一.Makefi ...
- GNU的makefile文件编写说明
这篇文章讲的相当详细,转来收藏: linux下Makefile学习 MAC
- 如何快速编写大项目的Makefile文件
在构建C++的后台服务时,经常需要自己来编写makefile文件,而如果没有合适的方法或模板时,编写makefile文件是一件很费时费力的事情.因此,为了帮助程序员高效准确的编写makefile文件, ...
随机推荐
- CSRF攻击详解
CSRF是什么 CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/X ...
- 如何永久激活(破解) IntelliJ IDEA 2018.1.3
版权声明:本文为博主原创文章,转载不需要博主同意,只需贴上原文链接即可. https://blog.csdn.net/zhige_me/article/details/80369336 1.去官网下载 ...
- Eclipse Mars 2安装Drools6.4插件(Drools and jBPM tools)时无法安装JBoss Runtime Drools Detector
在eclipse上本地安装Drools6.4Final的时候出现两个组件无法正常安装的情况,具体组件如下: 具体的提示信息为: Cannot complete the install because ...
- ap、map值计算
ap:所有图片某一个类 map:所有图片所有类的ap的平均 以一个score为阈值,大于score的所有框是假定正确输出的所有预测,将这些框和gt匹配(iou大于某一个阈值认为匹配成功),得到当前sc ...
- 20165302 程上杰 Exp1 PC平台逆向破解
实验内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数. 注入一个自己制作的she ...
- 常用lua代码块
1.读取请求体中参数 local request_method = ngx.var.request_method local args --获取参数的值 if "GET" == r ...
- jpa实例
ORM框架新的JPA ORM规范:1)JPA为POJO提供持久化标准规范.2)JPA的使用:Hibernate与TopLink以及OpenJpa都提供了JPA的实现.3)JPA主要技术: A.ORM ...
- (转)postfix疯狂外发垃圾邮件之分析与解决
从进程中看到,好像是postfix有问题.我这postfix主要是用来给程序发达邮件用的,如报警,程序外发邮件等.平时postfix进程不会像现在这样异常,这在postf主进程CPU占用高,其它的相关 ...
- 虚拟机VirtualBox安装MAC OS 10.12图文教程
VirtualBox虚拟机安装Mac OS 10.12图文教程的准备 1.VirtualBox虚拟机 下载地址:https://www.virtualbox.org/ 特别提醒:推荐官方下载,安装Vi ...
- day67
昨日回顾 1 orm 创建表,新增字段,修改,删除字段,不能创建数据库 -字段属性phone=models.CharField(max_length=64,null=True) -null=Tru ...