当前位置: 技术问答>linux和unix
初学者,请教g++编译C++程序?
来源: 互联网 发布时间:2015-01-10
本文导语: 刚转到linux下编程,在windows下用标准C++编写了一堆类。 举个例子: afx.h 是所有 *.cpp中包含的头文件 包含了对标准库的调用 (#include 〈string〉 #include 〈list〉 ……) 类A a.h a.cpp 类B b.h b.cpp 类C c.h c.cp...
刚转到linux下编程,在windows下用标准C++编写了一堆类。
举个例子:
afx.h 是所有 *.cpp中包含的头文件 包含了对标准库的调用
(#include 〈string〉
#include 〈list〉
……)
类A a.h a.cpp
类B b.h b.cpp
类C c.h c.cpp
类D d.h d.cpp 类D调用了类C(就是在c.cpp中#include "c.h")
类E e.h e.cpp
……
写了一个包含main()函数的测试程序在 main.cpp中
现在想问的是
1、我怎样才能把所有的类(A、B、……)编译成一个库文件,就像windows下的dll似的?
2、编译出一个库文件后,然后再和main.cpp编译起来成为一个可执行文件?
我只知道得用 g++ 或者做makefile文件 但具体怎么用不是很清楚
如果用g++怎样一个一个编译呢?还是一起
如果用makefile怎么写?(makefile好像比较繁琐,短时间不易弄懂,如果能用g++一个个编译也行,小弟不怕麻烦,只想快点能够编译)
由于要急着用,请各位高手能简单通俗的讲一下,小弟万分感谢
举个例子:
afx.h 是所有 *.cpp中包含的头文件 包含了对标准库的调用
(#include 〈string〉
#include 〈list〉
……)
类A a.h a.cpp
类B b.h b.cpp
类C c.h c.cpp
类D d.h d.cpp 类D调用了类C(就是在c.cpp中#include "c.h")
类E e.h e.cpp
……
写了一个包含main()函数的测试程序在 main.cpp中
现在想问的是
1、我怎样才能把所有的类(A、B、……)编译成一个库文件,就像windows下的dll似的?
2、编译出一个库文件后,然后再和main.cpp编译起来成为一个可执行文件?
我只知道得用 g++ 或者做makefile文件 但具体怎么用不是很清楚
如果用g++怎样一个一个编译呢?还是一起
如果用makefile怎么写?(makefile好像比较繁琐,短时间不易弄懂,如果能用g++一个个编译也行,小弟不怕麻烦,只想快点能够编译)
由于要急着用,请各位高手能简单通俗的讲一下,小弟万分感谢
|
g++ -c a.cpp -o a.o
........
编译生成obj文件
连接:
g++ a.o b.o c.o d.o main.o -o mysoft
生成可执行文件mysoft
........
编译生成obj文件
连接:
g++ a.o b.o c.o d.o main.o -o mysoft
生成可执行文件mysoft
|
makefile不是特别烦琐:
-------------------------------
生成的文件:依靠文件(或源文件)
Tab键 命令行
-------------------------------
其中依靠文件可以是另一操作项的生成文件。
-------------------------------
生成的文件:依靠文件(或源文件)
Tab键 命令行
-------------------------------
其中依靠文件可以是另一操作项的生成文件。