2017-07-30 15 views
-5
#include <iostream> 
#include <map> 
#include <vector> 
#include <string> 
#include <utility> 
#include <algorithm> 
#include <stack> 
#include <queue> 
#include <climits> 
#include <set> 
#include <cstring> 

using namespace std; 
#define ll long long 
#define pb push_back 
#define mp make_pair 

int main (void) 
{ 
    int arr[] = {1,2,3,4,5,60,70,8,50,20}; 
    int mseh = 0; 
    int mssf = 0; 
    int i = 0; 
    int e = 10; 
    while (i < e) 
    { 
     mseh = mseh + arr[i]; 
     if (mseh < 0) 
      mseh = 0; 
     if (mssf < mseh) 
       mssf = mseh; 
     i++; 
    } 
    cout<<mseh<<"\n"; 
    return 0; 
} 

私は上記のコードを書いており、与えられた配列内の最大の負でないサブアレイを計算します。私は上記をコンパイルしようとすると、私は次のエラーを取得する:次のコードでclangエラーが発生するのはなぜですか?

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: *** [1] Error 1 

このエラーは非常に不可解であると私は、コードで間違ったつもり場所を把握することができません。ありがとう

+4

少なくとも、プリプロセッサマクロの代わりにtypedefを使用してください。そのようなタイプを定義しないでください。 – StoryTeller

+1

どうやってコンパイルしようとしていますか?あなたはどんなコマンドを使っていますか? – ZeekHuge

+0

利用可能な名前と機能名は明確で意味があるはずです。次の読者のためのコードを書いて、理解しやすいようにしてください。そうすればエラーも減少します。 – zaph

答えて

0

これは、libstdC++のような適切な標準ライブラリ実装をリンクしていないことを意味します。ほとんどの場合、デフォルトでリンクされている必要がありますが、明らかに何かが間違っています。正確な原因は完全に環境的なものになります。

関連する問題