Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++包含XCODE 8中另一个项目的头_C++_Xcode_Include_Xcode8_Header Files - Fatal编程技术网

C++包含XCODE 8中另一个项目的头

C++包含XCODE 8中另一个项目的头,c++,xcode,include,xcode8,header-files,C++,Xcode,Include,Xcode8,Header Files,我在mac电脑上使用Xcode 8.2,我试图包含另一个项目的头文件。我举了一个简单的例子来回答这个问题,因为我正在研究的问题太大了,无法发布 以下是我想包括的项目: #ifndef personType_hpp #define personType_hpp #include <stdio.h> #include <iostream> #include <string> using namespace std; class personType { pu

我在mac电脑上使用Xcode 8.2,我试图包含另一个项目的头文件。我举了一个简单的例子来回答这个问题,因为我正在研究的问题太大了,无法发布

以下是我想包括的项目:

#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 */
在任何地方都找不到personType的方法。是的,它们在标题中声明,但找不到它的实际代码。这就像问某人有一个叫做加号的东西,然后3+5是什么?没有告诉他们如何把东西加在一起

要添加代码,您需要编译personType.cpp,然后编译main.cpp并将它们链接在一起


请尝试在Xcode中检查生成步骤或项目文件,以确保main.cpp和personType.cpp都被编译在一起。

添加要包含到当前正在处理的项目中的文件副本,以确保所有内容都被编译在一起并在IDE中链接在一起


目前,您只是引用在头中声明的资产,但在另一个项目的.cpp文件中有实现。底层代码必须正确编译和链接。

include似乎工作正常。您没有编译或链接personType.cpp。谢谢!我转到buildphases选项卡,并确保编译部分包含两个.cpp文件。这么简单的修复,我就知道是这样的。@LukeB没问题。如果成功了,别忘了把这个标记为答案:啊!我在找那个按钮!我有一个新问题。。。我已经以与上面相同的方式将personType.cpp文件添加到我的实际代码中,但它表示找不到文件周期。我有一个已回答的工作示例的屏幕截图,还有一个非工作示例的屏幕截图。编辑:我现在正试图发布这些图片…我刚刚发现我只需要进入文件->添加文件到…->添加cpp和hpp文件。Xcode将它们放在适当的位置。。。这就解决了。再次感谢!
#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)
/Users/idontwanttogivemyname/Desktop/C++ Projects/malikBook/malikBookGradeReportEx/malikBookGradeReportEx/studentType.hpp:15:10: 'personType.hpp' file not found