首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

gcc的应用

2012-07-02 
gcc的使用如果目录下有一个hello.c 文件执行如下命令进行编译: gcc -o hello hello.c这时在当前目录下就可

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

热点排行