首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

这篇文章不知道起什么名字

这是中间文件,还没有组装 多文件编译 这个命令可以一次传多个源文件给编译器 可以是指定头文件编译 在这个文件里面可以看见我头文件所在 打开编译过程详细开关 -fverbose-asm:在编译成汇编语言时...:只测试源文件语法是否正确,不会进行任何编译操作 -ffreestanding:编译成独立程序,而非宿主程序 -ansi:ANSI标准 -std=c99C99标准 -std=gnu89:ISO/IEC...凡是-x后面所列所有文件都会被视为其指定类型,要想改变类型可以再一次使用-x选项,或者使用-x none回到默认设置 -l library:进行连接时搜索名为library库 -L dir:把dir...规则,用于描述各目标文件依赖关系。...对于每个源文件,预处理器输出一个make规则,该规则目标项(target)是源文件对应目标文件名,依赖项(dependency)是源文件中#include引用所有文件。

70730

Makefile详细介绍和使用

https://www.cnblogs.com/LittleHann/p/3855905.html 规则是makefile中最重要概念,其告诉make 目标文件依赖关系,以及如何生成及更新这些目标文件...:为要生成或更新目标 prerequisites:为目标依赖关系 recipe:为生成目标的命令, foo.o : foo.c defs.h cc -c -g foo.c 其中foo.o为target...function.h gcc -c main.c -o main.o channle.o:channle.c WavHead.h gcc -c channle.c -o channle.o -std...=c99 .PHONY:clean clean: -rm -rf *.o 执行过程简单说就是最终需要生成一个名为test文件,这个文件需要main.o和channle.o,于是继续往下执行,然后通过命令...上面的代码在linux命令窗口下输入make命令就可以执行了,最终会生成一个test可执行文件。如果需要清除生成中间.o文件,输入make clean就可以全部清除了。

57340

【Linux】--- Linux编译器-gccg++、调试器-gdb、项目自动化构建工具-makeMakefile 使用

安装后编译器默认版本是较低,我们可以使用选项-std=c99(即使用c99标准),-std=c++11(即使用c++11标准)来进行版本提升。使用-o选项,可以将编译生成可执行重命名。...如果找到,它会找文件中第一个目标文件(target),在上面的例子中,他会找到"code.exe"这个文件,并把这个文件作为最终目标文件。...如果code.exe所依赖code.o文件不存在,那么make会在当前文件中找目标为code.o文件依赖性,如果找到则再根据那一个规则生成code.o文件。...make程序会读取makefile文件中数据,然后根据规则调用编译器,汇编器,链接器产生最后输出。 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1....显式规则说明了,如何生成一个或多个目标文件。2. make有自动推导功能,所以 隐晦规则可以让我们比较粗糙地简略地书写makefile ,比如源文件与目标文件之间时间关系判断之类。3.

12820

Linux — Makefile学习笔记以及多级目录下Makefile编写

声明所有的头文件 OBJLINK := –std=c99 #声明编译时候需要链接护着其他选项 export CC TOPDIR OBJDIR BINDIR BIN OBJLINK OBJ #到处所有的全局变量...-m 对新建目录设置存取权限。...也可以用chmod命令设置。 -p 可以是一个路径名称。此时若路径中某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在目录, 即一次可以建立多个目录。...clean: 关于clean规则,在make clean时候,并不产生目标文件,且没有依赖文件,所以命令都会执行,但如果目录中存在名为“clean”文件或者目录,则规则没有依赖文件...此main文件并非此工程以及Makefile需要依赖文件,为在本人在测试阶段手动编译生成可执行文件main,由于疏忽没有删掉。后续操作中可以忽略此文件。

4.9K10

Linux CC++工程中可生成ELF、动静态库文件通用Makefile

其次,如果生成目标文件依赖其它库文件,那么只要将LD_LIB_DIR设置成该动态库所在目录,LD_LIBS设置成要链接动态库文件名即可。...更建议做法是在当前C/C++工程配置文件中设置LIBPATH参数为动态库所在目录,这样就不用在设置变量LD_LIB_DIR值了,例如: export LIBPATH=/usr/lib64/:${...:= /home/typecodes前面的#号去掉,然后设置成自己工程根目录即可。...伪目标clean对应命令make clean能够清除上次执行make命令产生影响;伪目标help对应命令make help能够在界面上输出Makefile文件中重要变量值,方便调试。...:= -std=c99 -D_GNU_SOURCE CC += $(STD_OPT) CXX += $(STD_OPT) # *nix system tools defined.

11910

程序员C语言快速上手——工程篇(十三)

Makefile 脚本 Makefile 脚本文件是GNU make 工具输入文件,它也包含一套自己语法规则,它也能帮助C语言实现编译和链接。...基本语法规则 注意,#号开头行表示注释 语法结构如下 target1 target2 target3...: prerequisite1 prerequisite2 prerequisite3......但是要注意,我们如果在Windows上执行以上简化版make,则会报错,这是因为在Linux系统中,cc命令会默认链接到gcc命令上,执行cc命令就是在执行gcc命令,而我们Windows系统中是没有...链接指定库 find_library查找指定库,并将库文件路径保存到一个变量 set_target_properties设置目标的一些属性,从而改变构建方式 link_directories添加库搜索路径...(-std=c99 -Wall) add_definitions(-std=c99 -Wall) 指定构建环境 前面已经学会了-G参数指定构建环境,那么到底可以指定哪些构建环境呢?

2.9K30

Tool之双斜线注释

因为这个工程中,IDE使用编译器是gnu,编译规则默认包含了-ansi ? 从gnu手册中,可以看到-ansi等同于-std=c89,而c89那个年代,是不支持双斜线 ?...原来删除-ansi后,IDE就会将规则重置为-std=gnu89,而正是gnu89对c89做了一些扩展,其中就包含了这个双斜线注释。...那我们直接将规则设置为gnu89,甚至c99、gnu99之类呢? ? 试一下,都没有问题。...不过,毕竟和c89相比,c99变化太多,编译规则改动太大,可能会涉及到代码移植或兼容问题,这就需要项目经理或技术负责人来统筹定制规则了。...难道diab默认没有使用ansi选项?看一下Build Console,它用选项是-Xansi ? 这是什么鬼?看看diab手册,-Xansi全称是-Xdialect-ansi。

1.2K20

详解Android studio ndk配置cmake开发native C

下面我们来快速介绍一下CMakeLists.txt基本功能写法,能够应付通常情况。更多丰富使用规则需要查看官方文档。CMake documentation。...C参数,这里使用C99并开启三级优化 # 类似的设置还有CMAKE_CPP_FLAGS就是设置编译C++参数 # 更多参数就要根据需要看文档了 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS...} -O3 -std=c99") ##################################################################### # 这个函数是用来编译库...,所以用这个imported, # 否则需要提供需要编译文件列表 IMPORTED ) # 设置编译库文件属性,有很多属性设置,根据需要查看文档 set_target_properties...# 值得一提时候,在NDK Build中,我编译一个没有源文件so文件, # 以后把其他a文件整体连接进来。这里不行,必须提供源文件至少一个。

2.1K51
领券