GCC 简单用法

常用选项:

#编译链接
gcc   main.c -o  main

#只编译不链接,生成main.o文件,可以再执行gcc main.o -o main 链接,效果和上面一样
gcc -c main.c 

#预编译
gcc -E main.c

#只编译不汇编,生成main.s汇编代码文件
gcc -S mian.c 

#生成带调试信息的版本main_d
gcc -g main.c -o main_d

#指定头文件路径(-I..)
gcc main.c -o main -I../../include

#多文件编译
gcc main.c  test.c  -o main 

静态编译:把所有用到的库文件编译到可执行文件中。

  • 编译时间长,文件大,一般不用,好处是运行时不依赖环境。
  • 不加-static默认使用动态编译。
gcc main.c -o main -static

动态库的编译和使用:

现有一个Dog类,需要编译成动态库:

# g++ 和gcc用法一样
# -fpic 表示位置无关码
# -shared表示生成动态库
# libDog.so是生成的动态库名  要求为libxxx.so
g++  Dog.cpp -fpic -shared -o libDog.so

使用时:
假设Dog.h和生成的libDog.so 都在目录…/dog

# -I指定头文件路径
# -L指定库路径
# -l指定库名字(不用全称 libDog.so)
g++ main.cpp -o main  -I../dog -L../dog -lDog

main.cpp要#include Dog.h (和正常使用一样)

除此之外,执行生成的main文件时还需要指定库路径
可用下面的方式导出到系统LIBRARY_PATH下

可以写个脚本来执行,如下:

export LD_LIBRARY_PATH=../dog
./main 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值