gpt4 book ai didi

c++ - 程序没有编译,即使我正在从书中复制代码

转载 作者:行者123 更新时间:2023-11-28 07:09:17 25 4
gpt4 key购买 nike

我直接从一本关于 C++ 的书中获取了这个示例(缩短了它以便更容易看出问题所在)。我的类(class)不会用 g++ 编译。该类是:

   class stack{
private:
int count;
public:
void init(void);
};

inline void stack::init(void){
count= 0;
}

~
如您所见,我正在尝试在类内制作我的函数原型(prototype),然后在类外定义它们。这本书确实做了我正在尝试的事情,但它不起作用。错误在哪里?是我的电脑吗(我用的是 mac)。我得到的错误是问题,但也在这里:

user-MacBook-Pro:cplusplus trevortruog$ g++ Stack2.cpp
Undefined symbols for architecture x86_64: "_main", referenced from:
start in crt1.10.6.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status

最佳答案

代码编译正常。它只是没有做任何有用的事情,因为它缺少 main 函数,因此无法从中生成可执行文件。

这不是编译器中的错误,而是链接器中的错误,链接器准确地提示缺少入口点。您可以从错误消息中看到这一点:

ld: symbol(s) not found for architecture

首先,ld,是创建错误消息的应用程序的名称。 ldlinker application这是(内部)由实际编译器调用的。一旦被调用,代码就已经编译好了。

添加一个main函数来解决链接器错误。

作为附加评论,代码使用了不好的做法。这肯定暗示你正在使用的编程书籍很糟糕。不幸的是,糟糕的教材是 C++ 的祸根,即使教授得当,C++ 也是一门高度复杂的语言。帮自己一个忙,放弃这本书,转而使用 a good one .

关于c++ - 程序没有编译,即使我正在从书中复制代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com