程序无法编译,即使我正在从书中复制代码
Program not compiling, even though I'm copying code from book
我直接从C 的书中取出了此示例(缩短了它,因此更容易查看问题是什么)。我的班级不会用G 编译。课程是:
class stack{
private:
int count;
public:
void init(void);
};
inline void stack::init(void){
count= 0;
}
〜
如您所见,我正在尝试在班级内部原型我的功能,然后在班级外定义它们。这本书确实做了我正在尝试的事情,但它行不通。错误在哪里?是我的计算机(我正在使用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:为架构找不到符号
第一件事是ld
,是创建错误消息的应用程序的名称。ld
是由实际编译器(内部)调用的链接器应用程序。一旦被调用,代码就已经编译了。
添加main
函数以求解链接器错误。
作为另外的评论,该代码使用不良练习。这肯定暗示您正在使用的编程书不好。不幸的是,不良的教材是C 的祸根,即使正确教授,这也是一种高度复杂的语言。帮自己一个忙,放弃这本书,偏爱一本好书。
相关文章:
- 以下示例中如何避免代码复制?C++/库达
- 如何使用从C++代码写入时复制 BTRFS?
- 如果 iostream 对象不可复制,为什么以下代码是合法的?
- 为什么我的代码在尝试复制字符数组时引发 C6386 错误?
- 是否可以避免在以下代码中复制/移动构造函数的需要?
- 为什么在我的代码中调用复制构造函数而不是移动构造函数?
- 为什么在使用转换构造函数编译代码时需要 const 复制构造函数?
- C++具有移动和复制构造函数的类中的代码重复
- 如何在不复制此代码的情况下将多个函数放入多个命名空间?
- 表示行为与复制代码块的函数参数?
- 避免使用 auto 关键字从字面上复制 const 和非 const 的代码?
- 为什么在下面的代码中调用复制构造函数两次
- 从教科书中一对一复制的代码绝对没有任何作用
- 复制赋值和复制构造函数(代码C++的差异)
- 是否可以动态翻译QT应用程序而无需复制代码
- 我无法使用 c++(代码块)中的 fstream 将文件内容复制到另一个。如何运行该文件?
- 循环设计:计数和后续代码复制
- C++将格式化的代码复制到单词(如视觉助手)
- 将代码复制到RAM-如何一次复制多个功能
- 是否有任何方法可以避免跨类的不同构造函数进行代码复制