Linux gcc/g++编译器使用
2015-11-24 14:14
267 查看
1.首先应会设置几个好用的环境变量;
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/test/include #此环境变量用来设置头文件包含路径,这样就不用编译的时候添加路径咯;
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/lib #此环境变量用来设置动态库的包含路径;
LIBRARY_PATH=$LIBRARY_PATH:/home/test/lib #此环境变量用来设置静态库的保护路径;
把上面三个环境变量设置语句写到一个.sh文件中;
然后使用source xxx.sh执行操作;这样环境变量就其作用啦,记得一定要用source命令哦。
为什么要用source命令呢? 其实source命令只是在当前的bash环境中执行参数文件名中的语句,它与.命令是一样的。
如果直接执行bash脚本将会在一个子shell环境中执行相关的命令,所以基本不会影响到当前的shell环境,所以可能设置就不起作用了。
2.使用g++编译.c/.cpp文件;
如果存在test.c/test.cpp,使用如下语句编译即可:
g++ -o test test.c
也可以先编译成目标文件;
g++ -c test.c
g++ -o test test.o
3.使用g++编译.c/.cpp为静态库文件;
如果存在libtest.cpp,它使用了a.cpp,b.cpp文件中的函数或类;
首先编译为目标文件:
g++ -c libtest.cpp
g++ -c a.cpp
g++ -c b.cpp
然后生成.a文件:
ar cr libtest.a libtest.o a.o b.o
4.使用g++编译.c/.cpp为动态库;
如果存在libtest.cpp,它使用了a.cpp,b.cpp文件中的函数或类;
首先编译为目标文件:
g++ -c libtest.cpp
g++ -c a.cpp
g++ -c b.cpp
然后生成.so文件:
g++ --shared -fPCI -o libtest.so libtest.o a.o b.o
当然也可以一次性生成:
g++ --shared -fPCI -o libtest.so libtest.cpp a.cpp b.cpp
5.经常会有用的-I 与 -L选项;
-I选项: -I/root/include ,此用来引入一个头文件包含目录;
-L选项:-L/root/lib ,此用来引入一个库文件包含目录;
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/test/include #此环境变量用来设置头文件包含路径,这样就不用编译的时候添加路径咯;
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/lib #此环境变量用来设置动态库的包含路径;
LIBRARY_PATH=$LIBRARY_PATH:/home/test/lib #此环境变量用来设置静态库的保护路径;
把上面三个环境变量设置语句写到一个.sh文件中;
然后使用source xxx.sh执行操作;这样环境变量就其作用啦,记得一定要用source命令哦。
为什么要用source命令呢? 其实source命令只是在当前的bash环境中执行参数文件名中的语句,它与.命令是一样的。
如果直接执行bash脚本将会在一个子shell环境中执行相关的命令,所以基本不会影响到当前的shell环境,所以可能设置就不起作用了。
2.使用g++编译.c/.cpp文件;
如果存在test.c/test.cpp,使用如下语句编译即可:
g++ -o test test.c
也可以先编译成目标文件;
g++ -c test.c
g++ -o test test.o
3.使用g++编译.c/.cpp为静态库文件;
如果存在libtest.cpp,它使用了a.cpp,b.cpp文件中的函数或类;
首先编译为目标文件:
g++ -c libtest.cpp
g++ -c a.cpp
g++ -c b.cpp
然后生成.a文件:
ar cr libtest.a libtest.o a.o b.o
4.使用g++编译.c/.cpp为动态库;
如果存在libtest.cpp,它使用了a.cpp,b.cpp文件中的函数或类;
首先编译为目标文件:
g++ -c libtest.cpp
g++ -c a.cpp
g++ -c b.cpp
然后生成.so文件:
g++ --shared -fPCI -o libtest.so libtest.o a.o b.o
当然也可以一次性生成:
g++ --shared -fPCI -o libtest.so libtest.cpp a.cpp b.cpp
5.经常会有用的-I 与 -L选项;
-I选项: -I/root/include ,此用来引入一个头文件包含目录;
-L选项:-L/root/lib ,此用来引入一个库文件包含目录;
相关文章推荐
- Linux平台下Python的安装及IDE开发环境搭建
- Linux使用GCC编译matlab的m文件使其可执行
- Linux input子系统实例分析(二)
- linux使用top命令查看系统状态
- Linux 分区详解之—Parted,可以查看你的磁盘的分区类型(比如说GPT/MBR)
- [知其然不知其所以然-10] linux dmi table matching
- linux mysql查看安装信息
- Linux Ftp上传文件变更(MD5值变更)
- LINUX修改、增加IP的方法 ifconfig 两个ip地址 配置文件
- Linux磁盘管理之磁盘结构、概念、原理01
- window linux IPC ftok BY_HANDLE_FILE_INFORMATION
- 三张图看遍Linux 性能监控、测试、优化工具
- Linux下C线程池的实现
- CentOS6.6重设root密码(单用户模式)
- linux中sleep详解实例
- 还在羡慕Ubuntu,CentOS么---《一起动手打造你自己的Linux发行版--FalseOS》
- (十四)洞悉linux下的Netfilter&iptables:开发一个match模块【实战】
- (十三)洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
- (十二)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
- (十一)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】