繁体   English   中英

C ++编译问题-体系结构x86_64的未定义符号-Mac Os X Mountain Lion

[英]C++ Compilation Issue - Undefined symbols for architecture x86_64 - Mac Os X Mountain Lion

我遇到了无法解决的编译问题。 我正在Mac OS X 10.8和Windows上开发跨平台C ++项目代码。 该代码可以在Windows以及Mac Os X Leopard上编译并正常运行。

由于Apple由于种种原因促使开发人员坚持使用最新平台,因此我被迫在Mountain Lion上进行开发,并且我试图使该项目重新开始工作。

我正确地编译了我需要的所有库(wxWidgets等),并在最新版本的Eclipse中导入了该项目。 当我尝试构建项目时,它尝试编译firts .cpp文件,最后(为什么?)尝试调用链接器,导致我自己定义的类缺少一系列符号。 其他.cpp文件均未编译,因此整个过程失败的原因完全不可理解。

我也尝试从CLI调用make,结果相同。 我进入了makefile,一切似乎都正确。 看来是一个非常新手的问题,我觉得我在这里错过了一些大事情。

我粘贴在编译器的输出下面,以防万一有一些编译大师介入。请随时询问更多详细信息。

编译器输出

Pastebin Link: 编译器输出

我使用了PB,因为输出很大。

相关部分是在第一个.cpp文件的编译阶段之后立即调用ascollect2 缺少的符号在同一目录的其他.cpp文件中定义。

/usr/llvm-gcc-4.2/bin/../libexec/gcc/i686-apple-darwin11/4.2.1/as -arch x86_64 -force_cpusubtype_ALL -o /var/folders/br/h6ln_j014ll56zwc8x6xjmk80000gn/T//ccSUmHal.o /var/folders/br/h6ln_j014ll56zwc8x6xjmk80000gn/T//ccn8ex81.s

/usr/llvm-gcc-4.2/bin/../libexec/gcc/i686-apple-darwin11/4.2.1/collect2 -dynamic -arch x86_64 -macosx_version_min 10.8.3 -weak_reference_mismatches non-weak -o Calcoli.o -lcrt1.10.6.o -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/x86_64 -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/x86_64 -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1 -L/usr/llvm-gcc-4.2/bin/../lib/gcc -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1 -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/../../.. -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/../../.. /var/folders/br/h6ln_j014ll56zwc8x6xjmk80000gn/T//ccSUmHal.o -lstdc++ -lSystem -lgcc -lSystem

编译器输出以“经典”未定义符号问题结束。 所有强调文字 *强调文字* 强调文字

Undefined symbols for architecture x86_64:
  "typeinfo for TipoPuntoCalc", referenced from:
      Calcoli::setPuntoS(GTGraphicObject*)      in ccSUmHal.o
  "typeinfo for TipoPali", referenced from:
      Calcoli::setPaloS(GTGraphicObject*)      in ccSUmHal.o
  "typeinfo for TipoRett", referenced from:
      Calcoli::setFondazioneS(GTGraphicObject*)       in ccSUmHal.o
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [Calcoli.o] Error 1

这不应该是与体系结构相关的问题,因为将i386指定为目标具有相同的结果(未为体系结构i386找到符号)。

谢谢,

伊芙莉娜

转到目标的“构建阶段”部分,并验证您需要编译和链接的所有文件是否确实包含在适当的部分中。

听起来好像没有告诉编译器包括您需要的某些东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM