我希望这不是一个太具体的问题。 但是,如果你能够帮助,我将真的感谢!
当我提出我的申请时,我会发现这一错误?
ld: duplicate symbol colors::white in mainwindow.o and main.o
collect2: ld returned 1 exit status
主要定义如下:
#include <QtGui/QApplication>
#include "主要窗口。"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
这里是主要窗口的定义:
#include "ui_主要窗口。"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
glwidget = new MyGLBox(ui->centralWidget);
startTimer(11);
//test frame
BasicShapes shapes;
Polygon3 square = shapes.create_square(V3(0.,0.,0.),V3(1.0,1.0,1.),colors::cyan);
Polygon3 cube = shapes.create_cube(V3(-1.,-1.,-1.),V3(1.,1.,1.),colors::purple);
Polygon3 triangle = shapes.create_triangle(V3(0,1.,0),V3(1.,1.,1.),5.,colors::green);
//other stuff...
ui->vLayoutGLview->addWidget(glwidget); //add the glwidget to the ui framework
}
彩色是文档颜色中界定的一个名称空间:
namespace colors{
Color white(1.,1.,1.,0.);
Color black(0.,0.,0.,0.);
Color red(1.,0.,0.,0.);
Color green(0.,1.,0.,0.);
Color blue(0.,0.,1.,0.);
Color yellow(1.,1.,0.,0.);
Color purple(1.,0.,1.,0.);
Color cyan(0.,1.,1.,0.);
}
我的档案清单如下:
颜色。
#include <string>
#include <iostream>
#include <sstream>
主要窗口。
#include <QMainWindow>
#include "Igl Box.h"
#include "景象"
数学博士
#include <vector>
#include <cmath>
#include <string>
#include <iostream>
#include <sstream>
#include "颜色。"
Igl Box.h
#include <QGLWidget>
#include <QtOpenGL>
#include <vector>
#include "数学博士"
景象
#include "数学博士"
我确知,我只字不提同一档案(但我可能错过)的两倍,任何航程都由警卫保护。
你们有什么想法,为什么我出现重复错误? 如果没有它所汇编的字面空间,那么一个具有标准颜色的名称空间将真正有用。