gcc的使用

如果目录下有一个hello.c 文件执行如下命令进行编译:

gcc -o hello hello.c

这时在当前目录下就可以看到hello文件,执行如下命令执行程序:

./hello

如果要使用static编译,执行如下命令:

gcc -static -o hello hello.c

 

如果出现如下错误:

 error: 'for' loop initial declarations are only allowed in C99 mode

解决的办法是在编译命令后面加上:-std=c99 参数,或者使用g++命令编译。

 

如果目录下有一个helloword.cpp 文件执行如下命令进行编译

g++ helloword.cpp -o hellocpp -lstdc++

-lstdc++是链接c++的标准库

可以在g++后面加上-Wall参数启用警告选项

 

生成so库文件

g++ -fpic -shared mytestso.cpp -o mytestso.so

 

如果出现is referenced by DSO 错误,一般的错误信息如下:

 

/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: vlctest: hidden symbol `__dso_handle' in /usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/crtbegin.o is referenced by DSO
/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: final link failed: Nonrepresentable section on output

 

解决的办法就是加上-fpic -shared 参数

 

如果依赖其他的共享库进行编译:

 /usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++ -o vlctest vlc-armv5-test.c libvlccore.so -Iinclude -fpic -shared

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值