如果目录下有一个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