GCC

how to use gcc to compile c file?

reference

  • pre-process: define, inline function etc.

gcc -E main.c -o main.i
-D MAX=1 宏MAX为1
-U DEBUG 取消定义宏DEBUG

  • compile: get assembly language file

gcc -S main.i -o main.s

  • assemble汇编:把助记符(Memoni)换成操作码,把地址符号(Symbol)或标号(Label)换成地址码,得到目标文件

gcc -c main.s -o main.o

  • link:会检查出引用等错误

gcc main.o -o main 可执行文件

  • lib:标准库的大部分函数通常放在文件 libc.a 中(文件名后缀.a代表“achieve”,译为“获取”),或者放在用于共享的动态链接文件 libc.so 中(文件名后缀.so代表“share object”,译为“共享对象”)。这些链接库一般位于 /lib/ 或 /usr/lib/,或者位于 GCC 默认搜索的其他目录。

gcc main.c -o main.out -lm
#则会搜索/usr/lib下等libm.so 或 libm.dylib

  • 如果想链接其他目录下等库

gcc main.c -o main.out /usr/lib/libm.a
#指明具体的文件
gcc main.c -o main.out -L/usr/lib:/usr/local/lib -lm
#或者-L可能的目录

makefile

为了节省时间,可以使用 make 控制创建过程,由它调用编译器重新编译,而且只编译比对应的最新源文件旧的那些目标文件。

cmake

cmake -D CMAKE_INSTALL_PREFIX=~/

cmake则兼容了不同平台

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容