C++中main函数调用其他cpp文件的类的问题,总提示未定义的引用

#include<iostream>#include<boost/smart_ptr.hpp>#include"CmdLineParams.h"usingnamespac... #include <iostream>
#include <boost/smart_ptr.hpp>
#include "CmdLineParams.h"
using namespace std;
int main(int argc, char* argv[])
{
boost::shared_ptr<CmdLineParams> cmdline(new CmdLineParams(argc, argv));
cout << "hello world" << endl;
return 0;
}

编译如下:
g++ -o main main.o -lboost_program_options-mgw49-mt-1_58
错误如下:
undefine reference to 'CmdLineParams::CmdLineParams(int, char**));'
为什么在g++编译不过去?我在VS2013编译可以通过。
为什么在g++下同不过,是不是要加什么编译条件?
谢谢您,已经解决
main:main.o
g++ -o main main.o CmdLineParams.o -lboost_program_options-mgw49-mt-1_58
main.o:main.cpp
g++ -c main.cpp CmdLineParams.cpp
clean:
rm -f *.o main
展开
 我来答
山水阿锐
2015-05-26 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
makefile文件里,有没有加入Message.cpp
或者直接用g++:
g++ -o Client Client.cpp Folder.cpp Message.cpp
Message.h包含了Folder.h, 而Folder.h又包含了Message.h
你在Folder.h中声明了class Message; 用的又是指针还包含它干什么了,删了它。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式