c++ - 为什么这个 C++ 链接不起作用? (OSX 小牛队)

标签 c++ macos

我正在学习 C++。我曾尝试链接单独的文件以尝试在单独的文件中拥有一个类。

当我构建并运行该程序时,我收到此错误消息:

体系结构 x86_64 的 undefined symbol : “Sally::printCrap()”,引用自: Main-8bfa94.o 中的_main “Sally::Sally()”,引用自: Main-8bfa94.o 中的_main ld: 找不到体系结构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) [在 0.3 秒内完成,退出代码为 1]

这是我的代码:

main.cpp

#include <iostream>
#include <string>

#include "Sally.h"

using namespace std;

int main()
{
    Sally sallyObject;
    Sally *sallyPointer = &sallyObject;

    sallyObject.printCrap();
    sallyPointer->printCrap();
}

莎莉.h

#ifndef SALLY_H
#define SALLY_H

class Sally
{
public:
    Sally();
    void printCrap();
};

#endif

莎莉.cpp

#include "Sally.h"
#include <iostream>

using namespace std;

Sally::Sally()
{

}

void Sally::printCrap(){
    cout << "Crap \n";
};

如有任何帮助,我们将不胜感激!

最佳答案

只需启动 OS X 的终端应用程序,然后键入

cd "/Users/BEASTMACHIENEjr/Desktop/C++ Files"转到该文件夹​​,然后键入 g++ Main.cpp Sally.cpp。这将生成一个名为 a.out 的文件,然后您可以通过键入 ./a.out 启动该文件

PS:如果您使用 Sublime Text,我建议创建一个 Makefile,这样您就可以编译跨多个源文件的代码。

关于c++ - 为什么这个 C++ 链接不起作用? (OSX 小牛队),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900475/

相关文章:

c++ - 打开文件有问题

javascript - 是否有同时在 C++ 和 Javascript 中实现的高级进程间通信 API

c++ - 为什么 boost::recursive_wrapper 在这种情况下不起作用

Python 多处理故障排除

ios - 使用 Corona SDK 构建的公证 Mac OS 应用程序不再有效。验证失败

c++ - 整数中的每个字节如何存储在 CPU/内存中?

c++ - cin 直接到 vector<int>,当没有更多数据时中断循环

objective-c - 将 iOS 应用程序移植到 OSX 并维护一组代码?

macos - 在Mac上以管理员权限运行可执行文件

c++ - tell() 函数在哪里定义的?