Visual Studio无法正确构建

时间:2014-08-02 22:57:46

标签: c++ build visual-studio-2013

我今天在尝试编译C ++项目时遇到了两个不同的问题。

有时它不会反映我在新版本中的任何更改:如果我更改输出中的某些措辞或更改实际功能并编译并点击“开始调试”,它的行为将与我进行更改之前的行为完全相同。点击清理或重建解决方案修复了这个问题,但编译它需要大约一分钟。我猜它没有检测到任何变化,但在输出窗口中,我看到它列出了我所做的文件的文件名更改...

每当我尝试使用头文件或在类之外定义函数时,我也会得到很多“......已在main.obj中定义”错误(每个函数和变量一个)。重命名函数让它编译一次,但第二次编译将再次出现错误。如果我只是在.cpp文件中定义类,不使用头文件,并且不使用类之外的任何函数,它就有用了。

该项目是我前几天下载的一个开源程序(我正在构建一个机器人来控制它)。直到今天我才遇到第一个问题,但第二个问题一直在发生。我所做的就是添加一个文件(如果你同时计算Bot.cpp和Bot.h两个文件); Bot.cpp包含Bot.h和程序中的一些文件,程序的main.cpp包括Bot.cpp。

我想发布一些代码,但我发现我所做的事情并没有错。我想知道我是否需要对现有文件做些什么? (我曾经打开它的项目中包含VS解决方案文件,因为VS Express无法帮助您从现有代码创建项目。)

//Bot.h
#ifndef _Bot_h_
#define _Bot_h_ 1

#include <string>

class Bot{
private:
    uint32 inputs = 0;
    bool active = false;

public:

    Bot(){};
    ~Bot(){};

void Start();
void Stop();
void Run();

void Wait(int seconds);
void Press(int buttons);
};

#endif


//Bot.cpp
#ifndef _Bot_cpp_
#define _Bot_cpp_ 1

#include "main.h"
//Some other project files included between these
#include "Bot.h"

using namespace std;

void Bot::Start(){
    if (active == false){
        active = true; 
        Run();
    }
}
void Bot::Stop(){
    active = false;
}
void Bot::Run(){
    while (active == true){
        printf("Has my code updated?\n");
        Wait(2);
    }
}

//There are more functions defined here

#endif

我在原始源代码中真正完成的工作包括在main.cpp文件中包含列表底部的Bot.cpp,然后添加一个调用来创建类。我对C / C ++有点不熟练所以也许这很简单。我也很擅长写这样的帖子,所以如果有任何需要澄清我会尽力帮助。

0 个答案:

没有答案