MacでXcode 8.2を使用していますが、別のプロジェクトのヘッダーを挿入しようとしています。私が作業しているものが投稿するには大きすぎるので、この質問に使用するための簡単な例を作成しました。ここでC++他のプロジェクトのヘッダーをxcodeに含める8
は私に含めるプロジェクトです:
#ifndef personType_hpp
#define personType_hpp
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
class personType {
public:
personType();
personType(string, string);
~personType();
void setName(string, string);
string getFName();
string getLname();
void print() const;
private:
string firstName;
string lastName;
};
#endif /* personType_hpp */
およびそれのための.cppは次のとおりです。ここで
#include "personType.hpp"
personType::personType() {
firstName = "";
lastName = "";
}
personType::personType(string fn, string ln): firstName(fn), lastName(ln) {
}
personType::~personType() {
}
void personType::setName(string fn, string ln) {
firstName = fn;
lastName = ln;
}
string personType::getFName() {
return firstName;
}
string personType::getLname() {
return lastName;
}
void personType::print() const {
cout << firstName << " " << lastName;
}
は、私はちょうど私が受けていますエラーを表示するように作られたシンプルなファイルです。
#include <iostream>
#include <string>
#include "personType.hpp"
using namespace std;
int main() {
personType person1;
person1.setName("bob", "smith");
person1.print();
}
そして、私は取得していますエラーは次のとおりです。
warning: skipping file '/Users/idontwanttogivemyname/Desktop/C++ Projects/malikBook/malikBookEx11_3/malikBookEx11_3/personType.hpp' (unexpected file type 'sourcecode.cpp.h' in Frameworks & Libraries build phase)
Undefined symbols for architecture x86_64:
"personType::setName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in main.o
"personType::personType()", referenced from:
_main in main.o
"personType::~personType()", referenced from:
_main in main.o
"personType::print() const", referenced from:
_main 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)
警告は、[全般]タブの下にリンクされたフレームワークとライブラリのセクションで(personType.hpp)上記のヘッダファイルを選択し、私から来ている(やっXcodeを使わずにメインにファイルを含めることができました)。
免責事項として:私はこの問題をかなり広く捜しています。多くのユーザーが自分のコンピュータの他の部分からヘッダーにアクセスする必要があると確信しているので、非常に基本的なようですが、私はXcodeの確かな答えを見つけることができませんでした。それ以上の情報を提供する必要がある場合はお知らせください。
ありがとうございます!
EDIT:
は、私が正常にコンパイルリストにpersonType.cppファイルを追加しましたが、今と同じ手順を使用している、それは私が働いていた大きなプロジェクト内のファイルを見つけることができないと言います。ここでは、それがうまくいったサンプルプロジェクトのスクリーンショットと、それがなかったプロジェクトのスクリーンショットがあります。
/Users/idontwanttogivemyname/Desktop/C++ Projects/malikBook/malikBookGradeReportEx/malikBookGradeReportEx/studentType.hpp:15:10: 'personType.hpp' file not found
'#include'はうまく動作しているようです。あなたは何らかの形で 'personType.cpp'をコンパイルまたはリンクしていません。 – BoBTFish