makefile的选项LDFLAGS和LIBS的区别】的更多相关文章

LDFLAGS是选项,LIBS是要链接的库.都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么. 网上不难搜索到上面这段话.不过“告诉ld怎么吃”是什么意思呢? 看看如下选项: LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib LIBS = -lmysqlclient -liconv 这就明白了.LDFLAGS告诉链接器从哪里寻找库文件,LIBS告诉链接器要链接哪些库文件.不过使用时链接阶段这两个参数都会加上,所以你即使将这两个的值互换,也没有问…
CFLAGS 表示用于C编译器的选项 CXXFLAGS 表示用于C++编译器的选项 这两个变量实际上涵盖了编译和汇编的两个步骤 CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/include -I/path/include . 相同地,安装一个包时会在安装路径下建立一个include文件夹,当安装过程中出现故障时,试着把曾经安装的包的include文件夹增加到该变量中来. LDFLAGS:gcc 等编译器会用到的一些优化參数,也能够在里面指定库文件的位置. 使用方法:LD…
CFLAGS:C编译器选项,而CXXFLAGS表示C++编译器的选项 1. CFLAGS参数 选项 说明 -c 用于把源码编译成.o对象文件,不进行链接过程 -o 用于连接生成可执行文件,在其后可以指定输出文件的名称 -g 用于在生成的目标可执行文件中,添加调试信息,可以使用GDB调试 -Idir 用于把新目录添加到include路径上,可以使用相对和绝对路径,"-I.", "-I./include", "-I/opt/include" -Wal…
点击window---->preferences---->配置的tomcat---->JDK,在Optional Java VM arguments:中输入 -Xmx512M -Xms256M -XX:MaxPermSize=256m, 如下图所示: Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is…
目的:        基本掌握了 make 的用法,能在Linux系统上编程. 环境:        Linux系统,或者有一台Linux服务器,通过终端连接.一句话:有Linux编译环境. 准备:        准备三个文件:file1.c, file2.c, file2.h        file1.c:               #include <stdio.h>               #include "file2.h"               int…
Libraries Static Libraries a collection of ordinary object files (目标文件的集合) loaded at program link time (链接阶段加载) 不再那么重要的优势 节省编译时间 理论上稍快的执行速度 use the -l option to specify the library the -l option is a linker option, and thus needs to be placed AFTER t…
linux make手册:http://www.gnu.org/software/make/manual/make.html 一篇文章: 假设我们有一个程序由5个文件组成,源代码如下:/*main.c*/#include "mytool1.h"#include "mytool2.h"int main(){         mytool1_print("hello mytool1!");         mytool2_print("he…
Linux就这个范儿 第8章 我是Makefile P287 Makefile的作用就是——自动化编译,一旦写好,只需要一个make命令(解析Makefile,执行Makefile中描述的操作),整个工程就能完成自动编译,无论这个工程拥有多少个源代码文件.Makefile定义了一系列的规则,来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile就像一个shell脚本一样,其中也可以执行操作系统的命令. 最典型的就是在微软的Visual…
本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile. 在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile.因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile. 这个 Makefile 可以在 GNU Make 和 GCC 编译器下正常工作.但是不能保证对于其它版本的 Make 和编译器…
1.各级子目录的Makefile: obj-y += file.o obj-y += subdir/ “obj-y += file.o” 表示把当前目录下的file.c编进程序里. “obj-y += subdir/”表示进入subdir这个子目录下去寻找文件来编进子程序中: 2.顶层目录的Makefile: CROSS_COMPILE =                        #如果要交叉编译的话,就是:CROSS_COMPILE = arm-linux- AS           =…
python3.7+mac环境: $ brew install openssl && brew install swig $ brew --prefix openssl /usr/local/opt/openssl $ LDFLAGS="-L$(brew --prefix openssl)/lib" \ CFLAGS="-I$(brew --prefix openssl)/include" \ SWIG_FEATURES="-I$(brew…
在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile.因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile. 这个 Makefile 可以在 GNU Make 和 GCC 编译器下正常工作.但是不能保证对于其它版本的 Make 和编译器也能正常工作. 此 Makefile 的使用方法如下: 程序目录的组织  尽量将自己的源程序集中…
转自:http://blog.csdn.net/u011913612/article/details/52102241 一.makefile的作用 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信 息,在make时会决定在链接的时候需要重新编译哪些文件.Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件.当那些依赖文件有了改变,编译器会自动发现最终的…
这里一份万能makefile模板,写opencv项目时候使用的. 前提是提前配置好 包管理工具 pkg 然后就不用每次都去 -lopencv_xxx了. ###################################### # ###################################### #source file #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件 SOURCE := $(wildcard *.c) $(wildcard *.cpp) OB…
作者:杨老师,华清远见嵌入式学院讲师. 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件.如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这样大大提高了开发效率.但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏.下面我们介绍一个比较通用而且简洁的Makefile,大家只要对它稍…
目录结构 由于只是用来编译简单的小型程序,所以目录尽量简洁: . ├── build │   ├── bin │   ├── .dep │   └── obj ├── makefile └── src 这里用户需要创建的就只有makefile和src目录(里面放入项目.h和.cpp文件). build目录下用于存放编译中间文件和最终的可执行程序,其中.dep用于记录.cpp文件的头文件依赖关系. 自动生成头文件依赖 利用g++命令中推导头文件依赖的功能生成每个.cpp文件对应的.d依赖文件,再将…
a.c #include<stdio.h> #include "a.h" int main() { printf("hello world\n"); printf("A= %d\n",A); test_fun(); ; } a.h #define A 1 b.c #include <stdio.h> int test_fun() { printf("it is B\n"); ; } 编译test_Mak…
使用makefile.以前刚开始接触Makefile的时候,写过一个最简单的Makefile.点击查看Evernote原文. #@author: gr #@date: 2014-07-20 #@email: forgerui@gmail.com 一.Contents $@表示目标文件 $^表示依赖文件 $<表示第一个依赖文件 main: main.o h1.o h2.o gcc -o main main.o h1.o h2.o #上面可以简化为如下 gcc -o $@ $^ #---------…
http://xueqi.iteye.com/blog/1567866   1.一个简单的makefile例子   假设一个程序有两个文件file1.c,file2.c,每个文件都包含head.h,生成file可执行文件   file:file1.o file2.o                  附属行(文件的依存关系)     gcc -o file1.o file2.o            命令行 file1.o:file1.c head.h     gcc -c file1.c fi…
首先声明, 感谢九哥的帮助,因为从来没写过makefile, 所以一直是手动编译, 然后有一次写了三个文件, 需要编译, 而我只编译了一个文件, 所以一直出错, 九哥告诉我用makefile更方便, 可以学习一下 于是我就写了看了很多的blog, 然后向九哥要了这么个东西, 据说还有可以生成的工具 ########################################### #Makefile for simple programs ##########################…
http://www.groad.net/bbs/simple/?f104.html make 的递归执行与 MAKEFLAGS 变量 make 的递归调用是指:在 Makefile 中使用 make 作为一个命令来执行本身或者其它 makefile 文件.递归调用在一个有多级子目录的项目中非常有用.比如,当前目录下有一个 "subdir" 的子目录,这个子目录中又有描述这个目录编译规则的 makefile 文件,在执行 make 时,需要从上层目录开始并完成它所有子目录的编译. 在当…
一个非常高大上的Makefile,包括非常多语法: TARGET = api-login INSTALL_PATH = /huishoubao/cgi include ../../implements/log/Makefile.log include ../../implements/tools/Makefile.tools include ../../implements/db/Makefile.db include ../../implements/configure/Makefile.co…
1.框架 1. 顶层目录的Makefile 2. 顶层目录的Makefile.build 3. 各级子目录的Makefile 2.概述 1.各级子目录的Makefile: 它最简单,形式如下: obj-y += file.o obj-y += subdir/ "obj-y += file.o"表示把当前目录下的file.c编进程序里, "obj-y += subdir/"表示要进入subdir这个子目录下去寻找文件来编进程序里,是哪些文件由subdir目录下的Mak…
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:makefile 其实完全可以用csh或其他脚本来编写,只是VCS使用的linux内置的make命令定义了一个标准的仿真脚本,make命令是专门用来做项目的源文件管理和编译控制的命令.这篇文章重点看synpsys的标准仿真脚本都做了哪些操作,然后使用其他脚本来实现.这里主要是自己写的一点东西,有些地方是猜…
一.C代码 静态库 四个.h.c文件 add.h #ifndef ADD_H #define ADD_H int add(int a,int b); #endif add.c #include <stdio.h> int add(int a,int b) { printf("%d %d\n",a,b); return (a + b); } decrease.h #ifndef DECREASE_H #define DECREASE_H int decrease(int a,…
安装插件 http://developer.berlios.de/projects/cbmakegen/  然后会在project菜单下面有一个Generate Makefile的选项 点击就行了 如果是在windows下面,会生成一个makefile.gen文件…
https://www.zybuluo.com/lishuhuakai/note/209302 深入学习Make命令和Makefile(上) make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况,自动判断应该对那些模块重新编译,从而保证软件是由最新的模块构成.本文分为上下两部分,我们将紧紧围绕make在软件开发中的应用展开详细的介绍.   一.都是源文件太多惹得祸 当我们在开发的程序中涉及众多源文件时,常常会引起一些问题.首先,如果程序只有两三…
需求: 近期在看<C++ Primer Plus>, 作者在不断优化自己的类.有很多不同的版本号,有非常多的測试函数(main函数),我使用的是eclipse+CDT来编写C++,不可能为每一个类都创建一个project.那咋办呢? 我们知道gcc+makefile+gdb.是linux下的神器,使得编敲代码相当的灵活,奈何水平不够,还是使用了IDE来配合. 以下就来看看怎么使用elipse+makefile来灵活编译程序. 1. 首先上一张效果图: 2. 文件说明,加入了目录header和s…
vue-router 中hash模式和history模式. 在vue的路由配置中有mode选项,最直观的区别就是在url中hash 带了一个很丑的 # ,而history是没有#的.vue默认使用hash. mode:"hash"; mode:"history";hash—— 即地址栏 URL 中的 # 符号(此 hash 不是密码学里的散列运算).比如这个 URL:http://www.aaa.com/#/hello,hash 的值为 #/hello.它的特点在于…
Make命令参数的典型序列如下所示: make [-f makefile文件名][选项][宏定义][目标] 这里用[]括起来的表示是可选的.命令行选项由破折号“–”指明,后面跟选项,如: make –e 如果需要多个选项,可以只使用一个破折号,如: make –kr 也可以每个选项使用一个破折号,如: make –k –r 甚至混合使用也行,如: make –e –kr Make命令本身的命令行选项较多,最为常用的三个是: –k: 如果使用该选项,即使make程序遇到错误也会继续向下运行:如果没…