链接器命令失败,退出代码为1 C ++

时间:2017-04-02 05:50:17

标签: c++ xcode

我的项目设置为

  • Xcode 8.3(8E162)
  • 语言C ++

我的项目结构是

├── README.md
├── TrollLanguage
│   ├── TokenParser.cpp
│   ├── TokenParser.hpp
│   └── main.cpp

我的源代码是

的main.cpp

#include <iostream>
#include "TokenParser.hpp"

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    TokenParser *tokenParser = new TokenParser();
    tokenParser->TestFunc();
    return 0;
}

TokenParser.cpp

#include "TokenParser.hpp"

void TestFunc() {
    std::cout << "can u see me?";
}
enter code here

TokenParser.hpp

#ifndef TokenParser_hpp
#define TokenParser_hpp

#include <iostream>

class TokenParser {
public:
    void TestFunc();
};

#endif /* TokenParser_hpp */

预期的行为是

Hello, World!
can u see me?

实际行为是

Apple Mach-O Linker (Id) Error
"TokenParser::TestFunc()", referenced from:
Linker command failed with exit code 1(use -v to see invocation

1 个答案:

答案 0 :(得分:1)

您需要在实现文件中将类名作为函数定义的一部分。就目前而言,您正在定义一个名为TestFunc的免费功能。

#include "TokenParser.hpp"

void TokenParser::TestFunc() {
    std::cout << "can u see me?";
}