g++多文件编译
头文件:A.h
void test();
源文件:A.cpp
#include <iostream>
#include<thread>
#include<chrono>
#include<clocale>
#include "boost/date_time/gregorian/gregorian.hpp"
#include "boost/date_time/posix_time/posix_time.hpp"
using namespace std;
using namespace boost;
using namespace boost::gregorian;
using namespace boost::posix_time;
void test()
{
date d = day_clock::local_day();
date_facet* dfacet = new date_facet("%Y年%m月%d日");
cout.imbue(locale(cout.getloc(), dfacet));
cout << d << endl;
ptime tp = microsec_clock::local_time();
time_facet* tfacet = new time_facet("%Y年%m月%d日%H点%M分%S%F秒");
cout.imbue(locale(cout.getloc(), tfacet));
cout << tp << endl;
}
main函数所在文件:test.cpp
#include "A.h"
int main()
{
test();
return 0;
}
手动编译:
一步编译:
g++ -o test.o A.cpp test.cpp -std=c++11
分开编译:
g++ -c A.cpp -std=c++11
g++ -c test.cpp
g++ A.o test.o -o test.out
运行:./test.out
采用makefile编译:
test:A.o test.o
g++ -o test A.o test.o
test.o:A.h test.cpp
g++ -c test.cpp
A.o:A.cpp
g++ -c A.cpp -std=c++11
clean:
rm test A.o test.o
引入变量:
objects=A.o test.o
test:$(objects)
g++ -o test $(objects)
test.o:A.h test.cpp
g++ -c test.cpp
A.o:A.cpp
g++ -c A.cpp -std=c++11
clean:
rm test $(objects)
自动推导:
objects=A.o test.o
test:$(objects)
g++ -o test $(objects)
test.o:A.h //省略编译命令和test.cpp
A.o:A.cpp
g++ -c A.cpp -std=c++11 //因为要使用c++11编译,所以显示给出,这两句。否则,和上一行可以省略
clean:
rm test $(objects)
1.附加库在链接阶段
2.不属于项目的头文件,如果没在默认寻找目录中,使用 -L指定,在依赖中不用写
3.使用mysql的库要apt-get install libmysql++-dev
objects=main.o parsexml.o tinyxml2.o opfile.o opmysql.o stringex.o pathx.o timex.o
logtoo_srvd_bin=../build/bin
logtoo_srvd:$(objects)
g++ -o $(logtoo_srvd_bin)/logtoo_srvd $(objects) -L /usr/local/lib -lmysqlclient
rm $(objects)
main.o:parsexml.h opmysql.h opfile.h stringex.h timex.h pathx.h main.cpp
g++ -c main.cpp -I /usr/local/include -std=c++11
parsexml.o:tinyxml2.h parsexml.cpp
g++ -c parsexml.cpp -std=c++11
tinyxml2.o:
opfile.o:stringex.h timex.h opfile.cpp
g++ -c opfile.cpp -std=c++11
opmysql.o:opmysql.cpp
g++ -c opmysql.cpp -I /usr/local/include -std=c++11
stringex.o:stringex.cpp
g++ -c stringex.cpp -std=c++11
pathx.o:pathx.cpp
g++ -c pathx.cpp -std=c++11
timex.o:
clean:
rm $(logtoo_srvd_bin)/logtoo_srvd
g++多文件编译的更多相关文章
- C++命令行多文件编译(g++)
在刚开始学Java时用命令行进行编译代码.而C++一直在用IDE, 这次尝试下命令行编译.vs下也可以用cl.exe.link.exe等命令来进行编译 但这次是通过安装MinGW来学习命令编译,主要用 ...
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C+ ...
- LINUX下文件编译
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- gcc/g++ 实战之编译的四个过程
gcc和g++分别是GNU(一个开源组织)的c&c++编译器 对于.c后缀的文件,gcc把它当做是C程序,g++当做是C++程序:对于.cpp后缀的文件,gcc和g++都会当做c++程序. ...
- WebStorm ES6 语法支持设置和ES6语法的JS文件编译为ES5语法文件
ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2.0.ES6的目标,是使得JavaS ...
- 用gulp把less文件编译成css文件
第一次使用gulp构建工具,使用gulp将.less文件编译成.css文件并输出.根据视频做了笔记.提供新手和自己以后做参考. HTML文件 <!DOCTYPE html> <htm ...
- 嵌入式之:Linux下文件编译过程
本文主要三个部分:1.GNU GCC简介 2.C/C++交叉编译器arm-elf-gcc 3.make文件,用于工程管理 部分一:GNU GCC简介: 该编译器基本功能: (1)输出预处理后的文件(展 ...
- Ubuntu的多文件编译以及c语言的数组、函数
闲言少叙,直接切入主题. 一.Linux下的多文件编译(Ubuntu系统). 对于小程序来说,往往一个.c文件就足够了,里面包含了各种主函数和功能函数,以及函数的声明等等.但是这样的弊端主要有两点,一 ...
- Day Tip:SharePoint 2013 *.ascx.g.cs文件
在开发SharePoint2013的WebPart时,会产生一个*.ascx.g.cs文件.如果用TFS管理源代码经常遇到这个文件丢失.这让人很困扰,如果丢失了请在如下图中添加如下代码: ...
随机推荐
- Windows系统80端口被占用
1.查看系统端口被占用情况, 执行命令netstat -ano ,可以查看到被占用的端口对于的PID. 2. 打开任务管理器,然后点击“查看”→“选择PID”,勾上PID,再按PID排序,即可以看到8 ...
- 成为java高级程序员需要掌握哪些
section 1 1.Core Java,就是Java基础.JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如 ...
- UI基础:事件.响应链 分类: iOS学习-UI 2015-07-03 19:51 1人阅读 评论(0) 收藏
UIEvent:事件,是由硬件捕捉的一个代表用户操作操作设备的对象. 事件分三类:触摸事件.晃动事件.远程控制事件. 触摸事件:用户通过触摸设备屏幕操作对象,.输入数据.支持多点触摸,包含1个到多个触 ...
- .NET/C# 项目如何优雅地设置条件编译符号?
条件编译符号指的是 Conditional Compilation Symbols.你可以在 Visual Studio 的项目属性中设置,也可以直接在项目文件中写入 DefineConstants ...
- 在 Windows 10 中开启移动 WLAN 热点
本文将介绍如何在 Windows 10 中开启移动 Wi-Fi 热点. This post is written in multiple languages. Please select yours: ...
- CentOS安装crontab 定时备份文件夹
一. 编写脚本编写一个脚本文件,使脚本可以执行备份命令. 例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩.1. 创建脚本命令格式: touch 路径/文 ...
- Cannot find config.m4. Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module的 解决方法
cp /php-7.1.22/ext/openssl/config0.m4 /usr/local/php/bin/config.m4
- vertx.io 与nodejs 一个简单的性能比较
vertx.io 与node 都是可以进行js运行的一个引擎,但是vertx 支持的语言相对于node 多,可以查看官网.今天下网上查询相关的信息 时来了解到vertx.io 性能比node 好,于是 ...
- 使用cglib动态创建javabean
动态创建javabean对于我们进行开发,会有一定的帮助,一下是使用cglib动态创建javabean的一个例子: 先贴上code: package com.dalong.CreateCode; im ...
- php 备份和恢复数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...