2017-01-02 10 views
-1

QT Creatorでこの単純なコードを実行しようとしています。QT作成者:エラー:アーキテクチャx86_64のシンボルが見つかりません

#include<iostream> 
    using namespace std; 

    const int SENTINEL = 0; 
    int main() { 
     cout<<"This program adds a list of numbers "<<endl; 
     cout<<"Use "<<SENTINEL<<" to signal the end."<<endl; 
     int total = 0; 
     while(true) { 
      int value; 
      cout<<" ? "; 
      cin>>value; 
      if(value == SENTINEL) break; 
      total += value; 
     } 
     cout<<"The total is "<<total<<endl; 
     return 0; 
    } 

しかし、私はこの2つの問題を続けています。

  1. エラー:アーキテクチャx86_64で見つかりません記号(S)

  2. エラー:リンカコマンドが終了コード1(呼び出しを参照する-v使用)

フルで失敗しました私が得る記述はこれです。コンパイル出力の内部。

Undefined symbols for architecture x86_64: "Main()", referenced from: Main(int, char**) in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [simple-project.app/Contents/MacOS/simple-project] Error 1 00:04:36: The process "/usr/bin/make" exited with code 2. Error while building/deploying project simple-project (kit: Desktop Qt 5.7.0 clang 64bit) When executing step "Make" 00:04:36: Elapsed time: 00:27.

+0

私はあなたのコードをmain.cppに貼り付けました。ここでうまくいきます。実際にはもっとコードがあなたのケースに関わっていますか? – E4z9

答えて

0

コードをコンパイルして新しいプロジェクトにコピーして貼り付けると問題はありません。問題は、いくつかの.objファイルまたはMakefileファイルに問題があることです。これらのファイルには、基本的にまだリンクされていないコンパイル済みコードが含まれています。これらのファイルは、コンパイルごとに更新されるとは限りません。生成されたソースコードが変更された場合にのみ更新されます。これは、プロジェクト設定が変更されたとき(明示的に変更されたとき)、これらのファイルが必ずしも新しい設定に合うように変更されないため、エラーが発生することを意味します。このシステムはコンパイルを高速化するために作られていますが、あなたの場合のように迷惑になることがあります。あなたの問題を解決するには、これらのファイルとコンパイルされた.exeファイルを含むフォルダを削除するだけです。 Qt Creatorでは、通常、このフォルダにはbuild-untitled-Desktop_Qt_5_7_0_MSVC2015_32bit-Releaseのような名前が付けられています。フォルダを削除すると、すべてのファイルが削除されるため、コンパイラは今度は正しい設定で新しいファイルを生成する必要があります。

関連する問題