Новичок в C ++ и получение страшной ошибки «Binaries not found» при выполнении моего кода. Это происходит только тогда, когда я создал исходный файл, который включает код для класса. Когда я пишу программы, в которых нет класса, этого не происходит. Например, эта программа создает двоичные файлы, когда я создаю для него проект, и работает нормально:
#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 Parser, Elf Parser и GNU Elf Parser. Это, кажется, не имеет значения. Почему Eclipse генерирует двоичные файлы при создании проекта для некоторых файлов, а не для других (например, мой файл выше, который содержит класс под названием Measure?)
Ваша основная функция находится внутри определения вашего класса. Вам нужно переместить}; выше вашей основной функции. Я не знаю eclipse, но, скорее всего, здесь не видна основная функция, только метод класса с именем main (), чего нет в C ++.
Кстати, ваш метод startNote, похоже, содержит ошибку. Похоже, что key + triad () может дать значение, которое не охватывается вашим оператором switch. Итак, как ваш объект создается в этом случае?
Других решений пока нет …