gcc/g++/makefile/easymake/cmake/xmake/nmake ...
最简单的Makefile,但是还是大程序少不了makefile工具
#CC=arm-linux-gnueabihf-
CC=
target:
$(CC)gcc -o algo_main algo_main.c cJSON.c -lm
clean:
@rm -rf algo_main
一、Easymake太好用了,偷懒神器,强力推荐.
1、根目录下的easymake.mk就是makefile模板,我们自定义的makefile只需要包含这个模板即可
include ../../easymake.mk
2、源码包自带的sample够我们参考应用了。
drwx------ 4 4096 9月 26 10:56 basics drwx------ 4 4096 9月 26 09:50 so drwx------ 3 4096 9月 26 09:49 staticLib drwx------ 4 4096 9月 26 09:49 vpath
1) basics常规应用,包含一个shell脚本,也就是copy一份makefile文件
cp ../../easymake.mk Makefile
运行实例
dong@ubuntu:~/cb/easymake-master/samples/basics$ ./test.sh cp ../../easymake.mk Makefilemake g++ -MP -MMD -c -o bin/math/add.o math/add.cpp g++ -MP -MMD -c -o bin/add.o add.cpp # main detected g++ -o bin/add bin/math/add.o bin/add.o./bin/add add(5,6) returns 11create add_test.cppmake test g++ -MP -MMD -c -o bin/add_test.o add_test.cpp # main detected g++ -o bin/add_test bin/math/add.o bin/add_test.o# run [bin/add_test]# add_test: add_test.cpp:7: int main(): Assertion `add(1,1)==3' failed. Makefile:216: recipe for target 'test' failed make: *** [test] Error 2
2)so生成库文件并且运行,用shell脚本来编译
make bin/libmylib.sog++ add_test.cpp -I. -L./bin/ -lmylib -o bin/targetLD_LIBRARY_PATH=./bin/ ./bin/target
运行实例
dong@ubuntu:~/cb/easymake-master/samples/so$ ./so_test.sh g++ -I. -fPIC -MP -MMD -c -o bin/math/add.o math/add.cpp g++ -I. -fPIC -MP -MMD -c -o bin/add_test.o add_test.cpp # main detectedg++ -shared -o bin/libmylib.so bin/math/add.o add(8,8)=16
3)staticLib生成静态库,就不一一编译运行了,同上
4)vpath这个实例可以同时编译多个可运行项目,makefile只需要添加自定义的项目源码路径就行了
VPATH = ../src2include ../../../easymake.mk
运行实例
dong@ubuntu:~/cb/easymake-master/samples/vpath/proj$ make g++ -MP -MMD -c -o bin/math/add.o math/add.cpp g++ -MP -MMD -c -o bin/main.o main.cpp # main detected g++ -MP -MMD -c -o bin/hello_world.o ../src2/hello_world.cpp g++ -MP -MMD -c -o bin/test.o ../src2/test.cpp # main detected g++ -o bin/main bin/math/add.o bin/main.o bin/hello_world.o g++ -o bin/test bin/math/add.o bin/hello_world.o bin/test.o
3、Easymake源码在这里下载
https://github.com/roxma/easymake
二、还有一堆cmake xmake nmake ...
CMake 入门实战
http://www.hahack.com/codes/cmake/
cmake_demo.zip
cmake升级
https://blog.csdn.net/learning_tortosie/article/details/80593956
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
tar -xvf cmake-3.9.2.tar.gz
cd cmake-3.9.2
./configure
make
sudo make install
三、指定安装目录
一种是在./configure的时候指定路径
./configure --prefix=$(pwd)/_install
一种是make install的时候指定路径
make DESTDIR=$(pwd)/_install install
sudo pip2 install numpy --target=/usr/local/lib/python2.7/site-packages
四、gcc/g++升级和降级
由于在matlab中要使用mex,需要将原本的gcc '5.4.0' 版本降级(替换)为MEX支持的版本: '4.9.x'。
1.加入源,方便更新。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2.更新
sudo apt-get update
3.安装
sudo apt-get install gcc-4.9
sudo apt-get install g++-4.9
4.更新
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
5.成功验证:
gcc --version
成功标志:
g++ (Ubuntu 4.9.4-2ubuntu1~16.04) 4.9.4
gcc --version
成功标志:
gcc (Ubuntu 4.9.4-2ubuntu1~16.04) 4.9.4
原文链接:https://blog.csdn.net/Pancheng1/article/details/83058833
转载于:https://www.cnblogs.com/dong1/p/5908476.html
gcc/g++/makefile/easymake/cmake/xmake/nmake ...相关推荐
- c语言项目为什么要build?(gcc、makefile、cmake(qmake)、CMakeLists.txt)(qmake、cmake、qbs区别解析)(qmake还是cmake,mingw作用)
搞不太懂gcc和cmake(qmake)等的区别 1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器, 它可以编译很多种编程语言(括C.C++. ...
- Linux下gcc/g++、make和cmake的区别
文本程序到可执行文件生成无论在什么平台大致分为以下几个部分: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe ...
- 【Linux】三、Linux 环境基础及开发工具使用(上篇)|开发工具|编辑器-vim使用|sudo提升权限问题|编译器 - gcc/g++使用|项目自动化构建工构建工具-make/Makefile
目录 一.开发工具 二.Linux编辑器 - vim使用 2.1 vim 的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2. ...
- 【Linux修炼】6.gcc/g++及Makefile【工具篇】
每一个不曾起舞的日子,都是对生命的辜负. Linux-gcc/g++及Makefile 本节目标 程序的翻译过程 1.程序的翻译过程 2. 理解选项的含义 3. 动态链接和静态链接 Linux项目自动 ...
- <Linux常用开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile等)>——《Linux》
目录 1.Linux 软件包管理器 yum 1.1什么是软件包: 1.2 关于 rzsz: 1.3 如何安装软件: 1.4 如何卸载软件: 2.Linux开发工具 3. Linux编辑器-vim使用 ...
- Linux下gcc/g++编译器gdb调试器和makefile的使用
文章目录 一.gcc的使用 gcc选项 二.gdb的使用 三.Linux项目自动化构建工具-make/Makefile 3.1 概念 3.2 使用 3.3 原理 一.gcc的使用 首先我们知道一个C/ ...
- Linux【vim】【gcc/g++】【make/Makefile】
目录 一.vim操作 零.首先上按键图 一.Linux编辑器-vim使用 vim的三种模式 二.命令模式 : 赋值粘贴操作 光标的操作 删除操作: 大小写切换: 替换操作: 删除 三.底行模式 分屏操 ...
- 【Linux】Linux环境基础开发工具使用 —— yum | vim | gcc g++ | gdb | make makefile | 进度条 | git
Linux环境基础开发工具使用 1. Linux软件包管理器yum 1.1 什么是软件包 1.2 软件安装三板斧 1.2.1 查看软件包 1.2.2 安装软件 1.2.3 卸载软件 2. vim 2. ...
- 【LINUX修行之路】——工具篇gcc/g++的使用和自动化构建工具make/makefile
学习范围:✔️LINUX ✔️ gcc/g++✔️make/makefile 本文作者:蓝色学者 文章目录 一.前言 二.概念 什么是gcc/g++? 什么是make/makefile? 三.教程 3 ...
最新文章
- 数据防泄漏(中文版)
- 重构-改善既有代码的设计:简化函数调用 (八)
- accelerated C++ 第0章
- 利用事件冒泡和阻止事件冒泡的例子
- 安川g7变频器说明书_安川机器人故障维修合集
- atomic java_在Java中添加@atomic操作
- 网站大流量高并发访问的处理解决办法
- MediaCodec进行编解码AAC(文件格式转换)
- 数值优化——牛顿迭代法求解函数零点
- 学3dmax赚钱吗?学3dmax工资怎么样?
- amd服务器虚拟化,着眼未来 AMD皓龙产品从“芯”实现虚拟化
- 有哪些简洁的人生建议?
- 蓝桥杯:解救小哈最短路径
- 私域运营中小程序的作用
- php tp6 错误接管分析,终于成功使用whoops接管tp6的异常处理!
- 基于OpenStack Ironic与DPU的网易数帆裸金属方案实践
- wps 选择 高亮_WPS轻松办公—如何批量选中不同颜色的文字
- 眼球追踪如何预测头部追踪
- SLAM学习笔记(二十)LIO-SAM流程及代码详解(最全)
- android pak文件_游戏中的Pak文件解析