我正在学习Eclipse和C ++,正在开发一个非常简单的程序。我现在无法构建该程序。我刚刚安装了HomeBrew,所以我不知道这是否与它有关。这是我的代码(它来自一个简单的教程我正在处理,所以我知道代码可以工作,因为我已经看到它在教程中工作了):
#include <iostream>
#include <string>
using namespace std;
int main()
{
// Ask the user to input a word while the word length < 5
string word = "";
do
{
cout << "Enter a word that has at least 5 characters: " << endl;
cin >> word;
}while(word.size() < 5);
// Ask the user to input a character
char searchCh = '0';
cout << "Enter a character and the program will tell" <<
" you how many times it appears in the word " << word << "." << endl;
cin >> searchCh;
int counter = 0;
// Iterate over the word
for(int i = 0; i < word.size(); i++)
{
// Get a character
char ch = word.at(i);
// If the character matches the character we're looking for
if(searchCh == ch)
{
// Increment a counter
counter++;
}
}
// Output the number of times the character was found in the word.
cout << "The number of " << searchCh << "'s in the word " << word << " is " << counter << "\n";
return 0;
}
构建时出现的错误是:
g++ -o "Program 5" ./Program5.o
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Program 5] Error 1
我在这里看到了其他几个类似的问题,关于去项目&#39;和&#39;属性&#39;但我不知道应该更新哪些设置才能使其正常工作。此外,其他一些答案提到需要main()函数来解决这个问题,但我显然在这段代码中有一个。上周我在其他小项目上使用Eclipse时工作正常,所以我不确定是什么改变了。
了解更多信息: 当我第一次设置项目时,它被设置为一个空项目&#39;项目类型为&#39; MacOSX GCC&#39;作为工具链。然后,我在项目中创建了一个源文件(扩展名为.cpp),编写了代码,然后是我所在的位置。
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
尝试重置项目。有时安装构建链会使eclipse混淆并使其使用错误的库 - 特别是如果它期待另一个版本。
我认为这里发生的事情是eclipse混淆了使用不包含C ++文件的构建路径(由于升级移动它们?)而是包含C文件,这些文件在正常情况下不与C ++链接。
正如another commenter所提到的,这也可能是由于某种原因导致初始失败的构建未被清除的结果。
有时使用eclipse,解决方案与Windows相同:重新启动它,重做任何错误。