当前位置: 技术问答>linux和unix
g++编译类的问题?
来源: 互联网 发布时间:2016-03-18
本文导语: 有几个文件,分别是Message.h,Message.cpp, Folder.h, Folder.cpp和Control.cpp //Message.h //对Message类的声明,包含预处理变量声明 // class Folder; //前式声明 class Message { public: Message(const std::string& str):contents(str) { } Message& operator...
有几个文件,分别是Message.h,Message.cpp, Folder.h, Folder.cpp和Control.cpp
虽然代码偏多,但是因为以前习惯了VC的集成化,对g++的命令不熟悉,所以几次编译,更改上面那段代码都出错。
哪位大虾可以指导下这个怎么编译?
//Message.h
//对Message类的声明,包含预处理变量声明
//
class Folder; //前式声明
class Message
{
public:
Message(const std::string& str):contents(str) { }
Message& operator = (const Message&); //
//其它省略
private:
std::string contents;
std::set folders;
}
//Message.cpp
//对Message类的实现
//
#include "Message.h"
Message& Message::operator = (const Message& rhs)
{
//具体实现省略
}
//Folder.h
//对Folder类的声明,包含预处理变量声明
//
class Message; //前式声明
class Folder
{
public:
Folder();
Folder& Folder::operator = (const Folder& );
private:
std::set msgs;
}
//Folder.cpp
//对Folder类的实现
//
#include "Folder.h"
Folder& Folder::operator = (const Folder& rhs);
{
//省略
}
//Control.cpp
//对两个类的控制,包括main函数
//
#include "Message.h"
#include "Folder.h"
int main()
{
//定义Folder和Message的变量
}
虽然代码偏多,但是因为以前习惯了VC的集成化,对g++的命令不熟悉,所以几次编译,更改上面那段代码都出错。
哪位大虾可以指导下这个怎么编译?
|
g++ -c Message.cpp
g++ -c Folder.cpp
g++ -c Control.cpp
g++ -o main Control.o Message.o Folder.o
这样就可以了
//Makefile
all: Control.o Message.o Folder.o
(tab)g++ -o main Control.o Message.o Folder.o
Control.o: Control.cpp Control.h
(tab)g++ -c Control.cpp
Message.o: Message.cpp Message.h
(tab)g++ -c Message.cpp
Folder.o: Folder.cpp Folder.h
(tab)g++ -c Folder.cpp
clean:
(tab)rm main Control.o Message.o Folder.o
g++ -c Folder.cpp
g++ -c Control.cpp
g++ -o main Control.o Message.o Folder.o
这样就可以了
//Makefile
all: Control.o Message.o Folder.o
(tab)g++ -o main Control.o Message.o Folder.o
Control.o: Control.cpp Control.h
(tab)g++ -c Control.cpp
Message.o: Message.cpp Message.h
(tab)g++ -c Message.cpp
Folder.o: Folder.cpp Folder.h
(tab)g++ -c Folder.cpp
clean:
(tab)rm main Control.o Message.o Folder.o