2017-09-27 6 views
0

Xcodeを使用してC++を学習していますが、ヘッダーファイルのクラスを初期化しようとするとリンカーエラーが発生します。ここで私は、私が「取得するために使用するのでXcodeのはmain.hを読んで知っているmain.cpp:C++、Xcode、ヘッダーファイルのリンカーエラー

#include <iostream> 
#include <fstream> 
#include "main.h" 

using namespace std; 
int main() { 
    Rectangle rect(4, 5); 
    cout << rect.area() << endl; 
    return 0; 
} 

main.h ...

#ifndef main_h 
#define main_h 
using namespace std; 

class Rectangle { 
    int width,height; 
public: 
    Rectangle(int,int); 
    int area() {return width*height;} 
}; 

Rectangle::Rectangle (int x, int y) { width=x; height=y; } 

#endif /* main_h */ 

..andリンカエラー

clang: error: linker command failed with exit code 1 (use -v to see invocation) 

ですファイルが見つかりません "というエラー(ほかにもたくさんのもの)がありますが、私はそのすべてを修正し、もはやそれらのエラーを取得しません。私が理解しているところでは、Xcodeは何らかの理由でこれらの2つのファイルからマシンコードを構築することができません。なぜなら、すべてのコードを1つのファイルにコピー/ペーストすれば動作するからです。

答えて

0

私は、コマンドラインの両方から、これはビルドして実行するために取得することができた:

% clang++ main.cpp 
% ./a.out 
20 

とXcodeから。 XCodeので、それはプロジェクトの一環として、あなたのmain.hを見つけたいので、main.cppに次のプロジェクトのディレクトリに表示されるはずです:

enter image description here

は、あなただけのプロジェクトにファイルをドラッグすることができます。それはあなたの問題ではない、私はあなたのための他の提案を持っていない、うまくいけば他の人があります。

+0

これは既にその場所にあります。これは正確に何ですか? - >%clang ++ main.cpp %./a.out –

+0

ああ、それはターミナルで走った方法です。申し訳ありません、私はそれがXcodeのためだと思っていました。これは私のXcodeが動作しない理由は非常に奇妙です –

+0

うわあ、私はそれが働くようになった。私がプロジェクトに持っていた他のファイルは、たとえmain.cppで参照されていなくても何らかの形でエラーを引き起こしていました。ありがとう! –

関連する問題