Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
程序未编译,即使I';我从书上复制代码 我直接从一本C++的书中获取了这个例子(缩短了它,这样就更容易看到问题所在)。 我的类不会用g++编译。课程为: class stack{ private: int count; public: void init(void); }; inline void stack::init(void){ count= 0; }_C++_Macos - Fatal编程技术网

程序未编译,即使I';我从书上复制代码 我直接从一本C++的书中获取了这个例子(缩短了它,这样就更容易看到问题所在)。 我的类不会用g++编译。课程为: class stack{ private: int count; public: void init(void); }; inline void stack::init(void){ count= 0; }

程序未编译,即使I';我从书上复制代码 我直接从一本C++的书中获取了这个例子(缩短了它,这样就更容易看到问题所在)。 我的类不会用g++编译。课程为: class stack{ private: int count; public: void init(void); }; inline void stack::init(void){ count= 0; },c++,macos,C++,Macos,~ 正如您所看到的,我试图在类内对我的函数进行原型化,然后在类外定义它们。这本书正是我想做的,但它不起作用。错在哪里?是我的电脑吗(我在用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:

~
正如您所看到的,我试图在类内对我的函数进行原型化,然后在类外定义它们。这本书正是我想做的,但它不起作用。错在哪里?是我的电脑吗(我在用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++书的第一页上介绍你正在阅读。书的名字是什么?谢谢,我在另一个班有一个主干,但我只是想看看这本书是否在工作。我想我还是习惯于使用命令行