gpt4 book ai didi

C++ 类文件不在 Linux 操作系统上运行的 Eclipse Mars 中构建二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:45 27 4
gpt4 key购买 nike

C++ 新手,在执行代码时遇到可怕的“找不到二进制文件”错误。仅当我创建了包含类代码的源文件时才会发生这种情况。当我编写不包含类的程序时,这种情况不会发生。例如,当我为其构建项目时,该程序会创建二进制文件并运行良好:

#include <iostream>
using namespace std;

int main()
{
cout << "Hello World!";
}

但是当我尝试为此文件构建项目时,不会创建二进制文件:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <algorithm> // std::max

using namespace std;

class Measure {
public:
int key;
string note;

Measure() {
key = 13;
//Generate a random key
while(key > 12)
{
key = (rand() % 100) + 1;
}
note = startNote(key);
}

int getKey() {
return key;
}

string getNote() {
return note;
}

int triad(){
int first = 0;
int third = 0;
int fifth = 0;
while(first == third && first == fifth )
{
first = (rand() % 100) + 1;
third = (rand() % 100) + 1;
fifth = (rand() % 100) + 1;
}
if (first > third && first > fifth)
return 0;
else if(third > first && third > fifth)
return 1;
else
return 2;
}

string startNote(int key){
switch(key + triad())
{
case 1 :
note = "A";
break;
case 2 :
note = "A#";
break;
case 3 :
note = "B";
break;
case 4 :
note = "C";
break;
case 5 :
note = "C#";
break;
case 6 :
note = "D";
break;
case 7 :
note = "D#";
break;
case 8 :
note = "E";
break;
case 9 :
note = "F";
break;
case 10 :
note = "F#";
break;
case 11 :
note = "G";
break;
case 12 :
note = "G#";
break;
}
return note;
}



~Measure() {
// TODO Auto-generated destructor stub
}

int main()
{
cout << "Hello, world!" << endl;
return 0;
}

};

我查找了与我类似的问题,但解决方案不起作用。我尝试将项目属性菜单中的二进制解析器更改为 PE Windows 解析器、Elf 解析器和 GNU Elf 解析器。这似乎没有什么区别。为什么 Eclipse 在为某些文件构建项目时生成二进制文件而不是其他文件(例如我上面的文件包含一个名为 Measure 的类?)

最佳答案

您的主要函数位于您的类定义中。您需要移动 };高于你的主要功能。我不知道 eclipse,但它可能在这里看不到 main 函数,只有一个名为 main() 的类方法,这不是 C++ 中的东西。

顺便说一句,你的 startNote 方法似乎有一个错误。看起来 key + triad() 可以给出 switch 语句未涵盖的值。那么在这种情况下你的对象是如何构造的呢?

关于C++ 类文件不在 Linux 操作系统上运行的 Eclipse Mars 中构建二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37929259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com