我试图使用C++教科书中的邻接表示例编写一个图类,当我使用以下命令进行编译时:g++ -o prog program.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
...这到底是什么意思?可能是我的代码有问题,但我感觉问题可能比代码更深层次,因为我在许多不同的项目中都遇到了这个看似无法解释的错误,并且其中许多项目是以不同的方式解决的,不幸的是完全是偶然。
我在某个地方读到说这可能与我使用的是32位还是64位库有关,而且可能需要使用标记-m32或-m64,但我不确定是否适用于这里。有趣的是,当我尝试添加-m64标记时,我得到了完全相同的错误,但是当我尝试使用-m32标记时,我得到了同样的错误,只是它说
Undefined symbols for architecture i386:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
主要我只想知道这个错误在说什么。我通常习惯调试编译时指出具体代码行的错误,但是从这个错误信息中我无法辨别出任何类似那样的信息。您有什么思路吗?
如果有帮助的话,我使用一台2008年后期的Macbook,配有Intel Core 2 Duo(因此是64位),并运行OS X Lion(10.7.2),我认为这是最新版本。另外,我正在使用gcc版本4.2.1。