linux编写C++基本指令
⼀、基本编译指令
以下⾯⼀段代码为例:
/* helloworld.cpp */
#include <iostream>
int main(int argc,char *argv[])
{
std::cout << "hello, world" << std::endl;
return(0);
}
直接编译出可执⾏⽂件 g++ helloworld.cpp -o helloworld
执⾏: ./helloworld
我们也可以将cpp源⽂件分步编译,编译步骤:
选项 -E 使 g++ 将源代码⽤编译预处理器处理后不再执⾏其他动作。$ gcc -E helloworld.cpp -o helloworld.i
本⽂前⾯所列出的 helloworld.cpp 的源代码,仅仅有六⾏,⽽且该程序除了显⽰⼀⾏⽂字外什么都不做,但是,预处理后的版本将超过1200 ⾏。
这主要是因为头⽂件 iostream 被包含进来,⽽且它⼜包含了其他的头⽂件,除此之外,还有若⼲个处理输⼊和输出的类的定义。
⽣成汇编代码
选项 -S 指⽰编译器将程序编译成汇编语⾔,输出汇编语⾔代码⽽後结束。下⾯的命令将由 C++ 源码⽂件⽣成汇编语⾔⽂件 helloworld.s
如:$ g++ -S helloworld.cpp -o helloworld.s
选项 -c ⽤来告诉编译器编译源代码但不要执⾏链接,输出结果为对象⽂件。
g++ -c hellospeak.cpp -o hellospeak.o
⼆、其它常⽤命令
linux下gcc编译的四个步骤PS:这⾥说⼀下为什么在命令中没有提到头⽂件(如果有的话)
原因是:在“.cpp“中包含有”#include"xxx.h"“这句代码,它的意思是搜索系统头⽂件⽬录之前将先在当前⽬录中搜索⽂件“xxx.h“。⽽”xxx.h“正在该⽬录中,不⽤再在命令中指定了。
头⽂件 使⽤编译选项-I参数来指定头⽂件路径(和源⽂件不在同⼀⽬录时)
g++ -c -I/home/path main.cpp -o main.o
-I/home/path 指定头⽂件路径(当头⽂件和cpp⽂件不在⼀个⽬录时)
库⽂件
g++ main.o -o exeProgram -L/home/path -lexample
-L/home/path -lexample 指定库⽂件的路径
在makefile⽂件中可以定义⼀个变量名来代替上⾯的路径CXXFLAGS += -I/home/path
LDFLAGS += -L/home/path
g++ -c $(CXXFLAGS) main.cpp -o main.o
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论