Compile与Build

普通Compile需要gcc或g++ , 格式为

CXX -DHAVE_CONFIG -I/usr/include -L/usr/lib -l<libname> -g(debug level) -O(optimization level) -o <输出名字>

CXX参数:

 

定义宏-D<macro>取消宏-U<macro>指定头文件目录-I<dir>
指定库文件目录-L<dir>指定库文件-l<lib>包括最多gdb调试信息 
      

 

 

 

文件命令gcc选项功能
.c -> .icpp-E预处理:展开宏
.i -> .segcs-S编译:语法,语义分析,生成汇编文件
.s -> .oas-c汇编:Assembly生成机器码
.o -> .outld-L链接:链接库文件

make

make -n 查看编译指令

 

查看符号

nm -Do /usr/lib64/libstdc++.so 查看 .dynsym

nm /usr/lib64/libstdc++.so 查看 .symtab

 

Build

生成Makefile

./configure --prefix=<install_folder> 

cmake -DCMAKE_INSTALL_PREFIX=<install_folder> -DBUILD_SHARED_LIBS=ON

环境变量

LIBRARY_PATH 编译期间查找静态链接

LD_LIBRARY_PATH 运行时查找动态链接

 

undefined reference to 的可能原因:

1 缺失目标文件.o或库文件.so

2 链接顺序错误,符号按先后顺序读取

3 c++中引用c代码

4 不同的gcc版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值