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------ 9月 : basics
drwx------ 9月 : so
drwx------ 9月 : staticLib
drwx------ 9月 : vpath
1) basics常规应用,包含一个shell脚本,也就是copy一份makefile文件
cp ../../easymake.mk Makefile
运行实例
dong@ubuntu:~/cb/easymake-master/samples/basics$ ./test.sh
cp ../../easymake.mk Makefile make
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(,) returns create add_test.cpp make 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:: int main(): Assertion `add(,)==' failed.
Makefile:: recipe for target 'test' failed
make: *** [test] Error
2)so生成库文件并且运行,用shell脚本来编译
make bin/libmylib.so g++ add_test.cpp -I. -L./bin/ -lmylib -o bin/target LD_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 detected g++ -shared -o bin/libmylib.so bin/math/add.o
add(,)=
3)staticLib生成静态库,就不一一编译运行了,同上
4)vpath这个实例可以同时编译多个可运行项目,makefile只需要添加自定义的项目源码路径就行了
VPATH = ../src2 include ../../../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源码在这里下载
二、还有一堆cmake xmake nmake ...
CMake 入门实战
http://www.hahack.com/codes/cmake/
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
cmake交叉编译
https://blog.csdn.net/qq_24011271/article/details/82498500
easymake cmake xmake nmake ...的更多相关文章
- windows cmake与nmake
在Linux下编库经常会使用CMakeLists.txt文件,然后一个cmake 再一个make就可以编译出来. 在Windows下有cmake,但是cmake出来是一个Visual Studio工程 ...
- Easymake
Easymake太好用了,偷懒神器,强力推荐. 一.根目录下的easymake.mk就是makefile模板,我们自定义的makefile只需要包含这个模板即可 include ../../easym ...
- cmake用法(转)
转自:http://blog.csdn.net/dbzhang800/article/details/6314073 新工作中使用到了cmake,所以找点资料学习一下,这篇讲的确实不错,转过来保存一下 ...
- Cmake ,Out of Source Build
Out of Source build呢,就是让Cmake产生的临时垃圾文件,不关乎于项目实际本身的文件放到一个目录里,一般我们把这个目录放在项目根目录(也可以认为是根CmakeLists.txt)下 ...
- cmake 学习笔记(一)
最大的Qt4程序群(KDE4)采用cmake作为构建系统 Qt4的python绑定(pyside)采用了cmake作为构建系统 开源的图像处理库 opencv 采用cmake 作为构建系统 ... 看 ...
- cmake编译opencv指南
目录 cmake编译opencv指南 用包管理器安装 查看opencv相关的包 执行安装 编译安装 为什么编译安装 下载源码 编译脚本 执行编译脚本.解决3rdparty下载 编译后的设定-环境变量 ...
- cmake构建时指定编译器架构(x86 or x64)
vs2015 x64编译器为例,cmake命令如下: cmake -G "Visual Studio 14 Win64" path\to\source\dir 去掉Win64,就是 ...
- Cmake编译SDL2
cmake -G"NMake Makefiles" && nmake 中出现了以下这个RC资源编译器报告的错误: invalid language id when ...
- 310实验室(六)CMake学习心得
树形结构方式布局. OTL 中每一个文件中的CMakeLists.txt 有不同的作用:按查看文件的先后顺便进行分层理解, 根文件即第一次 中的.txt是 启用 CMAKE_MODULE_PATH模板 ...
随机推荐
- 怎样用Google APIs和Google的应用系统进行集成(5)----怎样把Google Tasks的JSON Schema转换成XML的Schema(XSD)?
前面说了一些Google API的介绍,可是在实际的开发其中,我们可能须要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面很的常见. 那么 ...
- 向量类Vector
Java.util.Vector提供了向量(Vector)类以实现类似动态数组的功能.在Java语言中.正如在一开始就提到过,是没有指针概念的,但如果能正确灵活地使用指针又确实可以大大提高程序的质量, ...
- oracle11g卸载,10g之类版本通用
鉴于oracle一些比较稀奇的问题,本人没碰到的不能帮忙解决的.而且比较着急赶时间的亲们,我就只能推荐先卸载在安装的办法了,这个方法一般用时也就1个小时到1个半小时之间,切记按步骤删除,别漏删了,不然 ...
- 让python pip使用国内镜像
国内源: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 h ...
- 网络虚拟化之FlowVisor:网络虚拟层(上)
概念解释:切片:虚拟网络的一个实例 一. 网络虚拟化(虚拟网络) 人类社会的发展在很大方面得益于自然界,飞机受益于鸟,雷达受益于蝙蝠等等,所以专门有个学科为仿生学就是研究和模仿生物的特殊本质,利用生物 ...
- [USACO5.5]隐藏口令Hidden Password
题目链接:传送门 题目大意:给你一个长度 N 的字符串,5<=N<=5,000,000,将首尾合并成环,断环成链并满足字典序最小,输出此时首字母在原串中的位置-1: 题目思路:最小表示法 ...
- <pre>标签让<textarea>标签的内容原样输出
当通过<textarea>插数据进数据的库,取出来后都变成一行变成,用这个<pre>标签能原样输入插入时的格式. 当时要对<pre>加一些CSS样式才行啦. 以下为 ...
- 【BZOJ4384】[POI2015]Trzy wieże 树状数组
[BZOJ4384][POI2015]Trzy wieże Description 给定一个长度为n的仅包含'B'.'C'.'S'三种字符的字符串,请找到最长的一段连续子串,使得这一段要么只有一种字符 ...
- iOS 遍历控件
NSArray *subviews = [_bgImageView subviews]; for (id objInput in subviews) { if ([objInput isKindOfC ...
- shop++源码反编译----随笔
一.applicationContext-mvc.xml配置 1.读取配置文件 <context:property-placeholder location="classpath*:/ ...