参考:
http://blog.youkuaiyun.com/casularm/article/details/316149
http://blog.youkuaiyun.com/a600423444/article/details/7206015
gcc包含的c/c++编译器 一般c程序就用gcc编译,c++程序就用g++编译.
1, gcc的基本用法
gcc hello.c -c hello.o 编译目标对象
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test 编译出一个名为test的程序,-o参数用来指定生成程序的名字
2, -l参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名
库名跟库文件名的关系 lua 至于 liblua.so
系统库路径: /lib和/usr/lib和/usr/local/lib
-L参数跟着的是库文件所在的路径名
如liblua.so放在/mypath下,那链接参数就是-L/mypath -llua
3, -I参数
系统路径:/usr/include
头文件放在/myInclude目录里,那编译命令行就要加上-I/myInclude参数
4, 创建动态链接库
GCC编译程序时,只需加上-shared选项即可,这样生成的执行程序即为动态链接库
编译:gcc hello.c -fPIC -shared -o libhello.so
-fPIC选项的作用是:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的
5, 创建静态库
gcc hello.c -o hello.o #这里没有使用-shared
http://blog.youkuaiyun.com/casularm/article/details/316149
http://blog.youkuaiyun.com/a600423444/article/details/7206015
gcc包含的c/c++编译器 一般c程序就用gcc编译,c++程序就用g++编译.
1, gcc的基本用法
gcc hello.c -c hello.o 编译目标对象
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test 编译出一个名为test的程序,-o参数用来指定生成程序的名字
2, -l参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名
库名跟库文件名的关系 lua 至于 liblua.so
系统库路径: /lib和/usr/lib和/usr/local/lib
-L参数跟着的是库文件所在的路径名
如liblua.so放在/mypath下,那链接参数就是-L/mypath -llua
3, -I参数
系统路径:/usr/include
头文件放在/myInclude目录里,那编译命令行就要加上-I/myInclude参数
4, 创建动态链接库
GCC编译程序时,只需加上-shared选项即可,这样生成的执行程序即为动态链接库
编译:gcc hello.c -fPIC -shared -o libhello.so
-fPIC选项的作用是:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的
5, 创建静态库
gcc hello.c -o hello.o #这里没有使用-shared