windows 下面make的使用示例
---恢复内容开始---
前面已经安装了windows下面的编译器g++和mingw32-make,下面就make做个示例说明
1.文档结构
|--src
|--comm
|--comm.cpp(内容如下:)
#include "../include/comm.h"
string trim(string &strIn)
{
string tmp = " ";
strIn.erase(strIn.find_last_not_of(tmp)+,strIn.size()-strIn.find_last_not_of(tmp));
strIn.erase(,strIn.find_first_not_of(tmp));
return strIn;
}
|--Makefile(内容如下:)
libcomm.a:comm.o
ar -r libcomm.a comm.o
move libcomm.a ..\..\lib
comm.o:comm.cpp
g++ -m64 -c comm.cpp -o comm.o
|--include
|--comm.h(内容如下:)
#ifndef _COMM_H__
#define _COMM_H__
#include <iostream>
using namespace std;
string trim(string &strIn);
#endif
|--module
|--test
|--Makefile
test.exe:test.cpp
g++ -m64 -I../../include -L../../../lib test.cpp -lcomm -o test.exe
move ./test.exe ../../../bin/
|--test.cpp(内容如下:)
#include <iostream>
#include "..\..\include\comm.h"
using namespace std; int main()
{
//cout<<"Hello World!"<<endl;
string hello = " Hello World! ";
cout<<trim(hello)<<endl;
return ;
}
|--lib
|--bin
2.执行顺序
2.1先到comm(src\comm)下面编译出来.o 和.a 文件,然后把.a移动到lib目录下面
cd src
cd common
mingw32-make
结果如下所示:
your current path>mingw32-make
g++ -m64 -c comm.cpp -o comm.o
ar -r libcomm.a comm.o
ar: creating libcomm.a
move libcomm.a ..\..\lib
移动了 1 个文件。
yout current path>
2.2到test目录(src\module\test)下面编译出来可执行文件,然后把可执行文件移动到bin目录下面:
your current path>mingw32-make
g++ -m64 -I../../include -L../../../lib test.cpp -lcomm -o test.exe
move ./test.exe ../../../bin/
移动了 1 个文件。
your current path>
2.3到bin下面去执行test.exe
your current path>test.exe
Hello World!
your current path>
2.4至此,hello world执行完毕。
3.我这里执行用的是mingw64,make用的是mingw32-make。
使用mingw64下面的g++的时候,执行move命令没有问题,需要加-m64参数(如果OS是64位,推荐使用这个,32位未作测试)
使用mingw32下面的g++的时候,生成的可执行文件也没有问题,但是执行dos命令move就会报错,可以不加参数,默认是-m32.
windows 下面make的使用示例的更多相关文章
- Appium(JAVA)Windows 7系统搭建及示例运行
Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...
- Windows Store App Image开发示例
通过上面的介绍,读者已经了解了Image对象及ImageBrush对象的使用方法和常用属性,在实际的开发工作中,比较常用的是Image对象,下面以一个幼儿园识物识字卡应用为例,来帮助读者更好的理解Im ...
- Android学习笔记—Windows下NDK开发简单示例
该示例假设Android开发环境已经搭建完成,NDK也配置成功: 1.在Eclipse上新建Android工程,名称为ndkdemo.修改res\layout\activity_main.xml &l ...
- winreg操作windows注册表详解示例
#coding:utf-8 #=====================================================================#=====本程序演示了WINR ...
- 【python】python彻底卸载的方法【windows安装版卸载的示例】
要想彻底干净的卸载python,如果是使用的安装版的话,其实很简单.[windows安装版] 就是点击安装包. 例如,当前你安装的版本是3.6.5,你想要把它卸载掉. 查看python版本的命令: 只 ...
- Windows Phone SplashScreen初始屏幕示例
protected override void OnLaunched(LaunchActivatedEventArgs args) { if (args.PreviousExecutionState ...
- windows下kafka配置入门 示例
实验平台与软件: 操作系统:windows7 32 位 java 开发包: jdk1.8.0_144 集群: zookeeper-3.3.6 消息队列: kafka_2.11-0.11.0.1 安装 ...
- 在Windows如何解决下Cocos2d-x示例代码TestCpp我找不到lib问题库文件
遇到此问题,首先确定失踪的库文件,然后找到文件夹,库文件. 在编制Cocos2d-x在TestCpp工程,提示缺少lib文件,共同拥有下面2种可靠解决方式: 1.在Cocos2d-x的根文件夹Debu ...
- 背水一战 Windows 10 (5) - UI: 标题栏
[源码下载] 背水一战 Windows 10 (5) - UI: 标题栏 作者:webabcd 介绍背水一战 Windows 10 之 UI 标题栏 示例TitleBarDemo.xaml <P ...
随机推荐
- Elasticsearch先聚合再按时间排序返回需要的字段
{ "query": { "bool": { "must": [ { "term": { "area_code ...
- 关于hbase api的个人总结(带jar包)
1.如果本机代码没问题,jar包没问题的话,检查集群也没用问题,但是代码运行显示 找不到对应的映射主机,需要在 C:\Windows\System32\drivers\etc 中修改host文件, ...
- asp+SqlServer2008开发【第四集:windows server 2008 r2的操作记录】
1,使用powershell server和putty像远程linux一样操作windows服务器,解决使用mstsc命令无法远程桌面的问题. 2,使用IMM管理,使用浏览器查看IBM服务器的工作状况 ...
- 使用Redis构建全局并发锁
谈起Redis的用途,小伙伴们都会说使用它作为缓存,目前很多公司都用Redis作为缓存,但是使用Redis仅仅作为缓存未免太大材小用了.深究Redis的原理后你会发现它有很多用途,在很多场景下能够使用 ...
- POJ 2391 Ombrophobic Bovines (二分答案+floyd+最大流)
<题目链接> 题目大意: 给定一个有$n$个顶点和$m$条边的无向图,点$i$ 处有$A_i$头牛,点$i$ 处的牛棚能容纳$B_i$头牛,每条边有一个时间花费$t_i$(表示从一个端点走 ...
- Kali Linux常用服务配置教程安装及配置DHCP服务
Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中 ...
- Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header
Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header: DisallowedHost at / Invalid HTTP_HOS ...
- Codechef August Challenge 2018 : Safe Partition
传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足m ...
- [LeetCode] Serialize and Deserialize N-ary Tree N叉搜索树的序列化和去序列化
Serialization is the process of converting a data structure or object into a sequence of bits so tha ...
- linux下利用C或C++ 语言调用需要root权限的函数
1.setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序).也可直接将普通用户加入root组中,那么编译程序不用来回切换用户.(2)登录root ...