架构的未定义符号x86-64“开始”

我如何链接我的程序?

我有一个2012年中期的macbook pro,我最近升级到了OSX 10.11(El Capitan) . 为了编译c程序,我不得不重新安装g,这是我用brew做的 .

现在我在尝试链接我的程序时遇到错误 .

g -6 -o hello hello.o架构x86_64的未定义符号:“start”,引自:主要可执行文件的隐式条目/开始ld:未找到架构的符号x86_64 collect2:error:ld返回1退出状态

这是我的代码:hello.cpp

#include <iostream>
int main(){
    std::cout<<"Beginning program";
    return 0;
}

当我链接-v标志时,这是输出

g -6 -o hello hello.o -v

使用内置规格 .

COLLECT_GCC = g -6

COLLECT_LTO_WRAPPER =的/ usr /本地/地窖/ GCC / 6.2.0 /的libexec / GCC / x86_64的-苹果darwin15.6.0 / 6.2.0 / LTO-包装

目标:x86_64-apple-darwin15.6.0

配置为:../ configure --build = x86_64-apple-darwin15.6.0 --prefix = / usr / local / Cellar / gcc / 6.2.0 --libdir = / usr / local / Cellar / gcc / 6.2.0 / lib / gcc / 6 --enable-languages = c,c,objc,obj-c,fortran --program-suffix = -6 --with-gmp = / usr / local / opt / gmp --with-mpfr = / usr / local / opt / mpfr --with-mpc = / usr / local / opt / libmpc --with-isl = / usr / local / opt / isl --with-system-zlib --enable-libstdcxx- time = yes --enable-stage1-checking --enable-checking = release --enable -lto --with-build-config = bootstrap-debug --disable-werror --with-pkgversion = 'Homebrew gcc 6.2.0' --with-bugurl = https://github.com/Homebrew/homebrew/issues --enable-plugin --disable-nls --enable-multilib

线程模型:posix

gcc 6.2.0版(Homebrew gcc 6.2.0)

COMPILER_PATH =的/ usr /本地/地窖/ GCC / 6.2.0 /的libexec / GCC / x86_64的-苹果darwin15.6.0 / 6.2.0 /:在/ usr /本地/地窖/ GCC / 6.2.0 /的libexec / GCC / x86_64的 - 苹果 - darwin15.6.0 / 6.2.0 /:在/ usr /本地/库/ GCC / 6.2.0 / libexec目录/ GCC / x86_64的 - 苹果darwin15.6.0 /:在/ usr /本地/库/ GCC / 6.2.0 /lib/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0/:/usr/local/Cellar/gcc/6.2.0/lib/gcc/6/gcc/x86_64-apple-darwin15.6.0 /

LIBRARY_PATH =的/ usr /本地/地窖/ GCC / 6.2.0 / LIB / GCC / 6 / GCC / x86_64的-苹果darwin15.6.0 / 6.2.0 /:在/ usr /本地/地窖/ GCC / 6.2.0 / lib中/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0/../../../

COLLECT_GCC_OPTIONS =' - o''hello'' - v'' - miscosx-version-min = 10.11.3'' - shared-libgcc''-mtune = core2'/usr/local/Cellar/gcc/6.2.0/ libexec / gcc / x86_64-apple-darwin15.6.0 / 6.2.0 / collect2 -dynamic -arch x86_64 -macosx_version_min 10.11.3 -weak_reference_mismatches non-weak -o hello -L / usr / local / Cellar / gcc / 6.2.0 / lib / gcc / 6 / gcc / x86_64-apple-darwin15.6.0 / 6.2.0 -L / usr / local / Cellar / gcc / 6.2.0 / lib / gcc / 6 / gcc / x86_64-apple-darwin15.6.0 / 6.2.0 /../../ .. hello.o -lstdc -no_compact_unwind -lSystem -lgcc_ext.10.5 -lgcc -lSystem -v collect2 version 6.2.0 / usr / bin / ld -dynamic -arch x86_64 -macosx_version_min 10.11 .3 -weak_reference_mismatches non-weak -o hello -L / usr / local / Cellar / gcc / 6.2.0 / lib / gcc / 6 / gcc / x86_64-apple-darwin15.6.0 / 6.2.0 -L / usr / local /Cellar/gcc/6.2.0/lib/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0/../../ .. hello.o -lstdc -no_compact_unwind -lSystem -lgcc_ext.10.5 -lgcc -lSystem -v @(#)PROGRAM:ld PROJECT:ld64-136配置为支持archs:armv6 armv7 armv7s i386 x86_64

图书馆搜索路径:/usr/local/Cellar/gcc/6.2.0/lib/gcc/6/gcc/x86_64-apple-darwin15.6.0/6.2.0 /usr/local/Cellar/gcc/6.2.0/lib / gcc / 6 / usr / lib / usr / local / lib

框架搜索路径:/ Library / Frameworks / / System / Library / Frameworks /

架构x86_64的未定义符号:“start”,引自:主要可执行文件的隐式条目/开始ld:未找到架构的符号x86_64 collect2:error:ld返回1退出状态

我从其他帖子中读到,这可能是由旧版本的g编译的默认库的问题 . 但我认为这不是问题,因为库搜索路径似乎指向g-6的库 .

回答(0)