mac os 编译 c++ 的时候 clang: error: linker command failed with exit code 1 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ivanchou
V2EX    问与答

mac os 编译 c++ 的时候 clang: error: linker command failed with exit code 1

  •  
  •   ivanchou 2015-05-09 16:06:02 +08:00 5870 次点击
    这是一个创建于 3855 天前的主题,其中的信息可能已经有所发展或是发生改变。
    老师给的 makefile 在 ubuntu 下正常,命令是:
    g++ -std=c++0x -g -O2 -Idir FileName.cc -fPIC -shared -o FileName.so

    但在 mac os 下编译出错(10.10.3)
    错误信息:
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    有说是 command line tool 的问题,我修改为:
    clang++ -stdlib=libstdc++ -g -O2 -Idir FileName.cc -fPIC -shared -o FileName.so
    同样的错误

    有遇到过的吗?
    21 条回复    2016-07-03 22:58:26 +08:00
    jiang42
        1
    jiang42  
       2015-05-09 18:01:59 +08:00
    我觉得你提供的有用信息太少了。。
    cheneiweei
        2
    cheneiweei  
       2015-05-09 18:11:14 +08:00
    这个错误一般是库链接错误
    47jm9ozp
        3
    47jm9ozp  
       2015-05-09 18:33:16 +08:00
    求解决问题又自作聪明截取错误信息或者转述错误信息都是耍流氓
    ivanchou     4
    ivanchou  
    OP
       2015-05-09 20:39:54 +08:00
    @jiang42

    @cheneiweei
    但是在 ubuntu 下使用 g正常,所以我怀疑是 clang 的问题。
    @ooxxcc
    正因为不懂所以来求助有错吗?我以为像你这种自以为是又自大的家伙才是在耍流氓。
    ivanchou
        5
    ivanchou  
    OP
       2015-05-09 20:41:10 +08:00
    @jiang42
    其他的信息就是跟代码相关,

    Undefined symbols for architecture x86_64:
    "InputFormatter::getEdgeLine()", referenced from:
    PageRankVertexInputFormatter::loadGraph() in PageRankVertex-ed140b.o

    类似这样,所以我认为这些是无关的
    ivanchou
        6
    ivanchou  
    OP
       2015-05-09 20:42:01 +08:00
    @cheneiweei
    但是在 ubuntu 下使用 g++ 就正常,所以我怀疑是 clang 的问题。 你说的库链接指的是什么?
    ivanchou
        7
    ivanchou  
    OP
       2015-05-09 20:43:23 +08:00
    @ooxxcc 如果你的回答对别人没用,那么就不要自以为是的站在制高点对别人进行评断了。
    你看评论编辑栏的右下 “请尽量让自己的回复能够对别人有帮助” 谢谢
    msg7086
        8
    msg7086  
       2015-05-09 21:07:37 +08:00 via Android
    《提问的智慧》。
    你并没有说清楚事情的背景…
    另外,你有试过linux下的clang吗?
    skydiver
        9
    skydiver  
       2015-05-09 21:23:28 +08:00
    @ivanchou 你要是早就把5楼的错误信息贴出来,问题早就解决了。这个明显是你少连接了个文件。你找到InputFormatter::getEdgeLine所在的目标文件一起链接就好了。

    求解决问题又自作聪明截取错误信息或者转述错误信息都是耍流氓
    ivanchou
        10
    ivanchou  
    OP
       2015-05-09 22:03:00 +08:00
    @skydiver
    错 “求解决问题又自作聪明截取错误信息或者转述错误信息都是耍流氓” 这句话也得在你解决了问题之后再说
    skydiver
        11
    skydiver  
       2015-05-09 22:21:05 +08:00
    @ivanchou 说的就是解决不了问题是因为你的提问信息不全,要是能解决问题了反而说明你没错了
    plan9
        12
    plan9  
       2015-05-09 23:09:20 +08:00
    修改以后出现同样的错误有可能你没有 clean
    jiang42
        13
    jiang42  
       2015-05-10 00:08:30 +08:00
    @ivanchou 问问题一般是要给出全部信息的,最好是在其他人机器上能够复现。

    还有。。。别甩锅给clang,之前我见过有人甩锅给clang,被打脸了。。。


    @msg7086 补充一下,有用过Mac OS X上的gcc么?
    twl007
        14
    twl007  
       2015-05-10 00:21:14 +08:00 via iPhone
    请问我电脑死机了是为什么
    ivanchou
        15
    ivanchou  
    OP
       2015-05-10 01:54:50 +08:00
    @jiang42 感谢提醒,确实对 c++ 不熟,用 java 较多。
    其实我的过程是这样的,按照老师给的步骤下来,ubuntu 上能够成功编译,但 mac os 上就出现这个问题,所以控制变量也知道是 clang 的问题,我在前面也说明了。按理这个错误是比较常见的,所以就有了这么一个提问,然后楼底下就一群一副让人讨厌的嘴脸乱喷。另外 gcc 有 mac os 的么?因为 make file 里的 gcc 在执行过程中被自动转成了 clang 。结果是搞半天没解决, stackoverflow 也把类似的错误翻了个遍,最后放弃直接用 ubuntu 了,做一次作业不至于浪费太多时间在环境上。
    canautumn
        16
    canautumn  
       2015-05-10 08:39:50 +08:00   1
    一看明显是楼主对C++不熟,楼上的没必要喷啊。既然回帖了就耐心点呗。

    @ivanchou mac有gcc的,但是需要自己装,用homebrew什么的就可以。不过你的问题是缺少一个库,跟clang无关,一般都是配置的问题,而想让别人帮你解决配置问题,你给的信息确实是远远不够。不过你做得对,没必要因为一个作业折腾太久,Ubuntu能用就用。Mac下边的配置什么的用久了自然就熟了。如果以后打算经常在Mac下搞,就花些时间折腾一下,否则用Ubuntu解决,没必要花太多时间。我估计楼上主要想喷你『我估计是clang的问题』这句话。
    47jm9ozp
        17
    47jm9ozp  
       2015-05-10 11:40:44 +08:00
    @ivanchou 所以说,你自己问题不说清楚还让别人猜,乖乖把完整错误信息贴出来不就行了,一定要截一段

    早贴五楼早解决,不贴五楼还要别人帮你解决不是耍流氓是什么
    47jm9ozp
        18
    47jm9ozp  
       2015-05-10 11:50:17 +08:00
    “一副让人讨厌的嘴脸”,你就说我说你自作聪明截取错误信息这点说错了没,至于语气上的问题,一定要我亲切友好的想你请求全部log你才满意对吧

    本来有点兴趣点回来的,结果发现别人就提供了“我的电脑不能用了怎么办”这种的信息,你觉得应该是什么感觉

    别把不懂当借口,贴出完整的错误提示是常识


    建议看一下《提问的智慧》
    ivanchou
        19
    ivanchou  
    OP
       2015-05-10 11:53:33 +08:00
    @ooxxcc 我不知道你们这些人在装什么,我信息提供的不全你跟我心平气和的说我有不足我改正就是,在那装什么装,你的冷嘲热讽对我对大家都毫无帮助。你要是不想帮忙左上角返回谢谢,我是来求帮助的不错,但我不是跪求,你为什么不学学那些点击进来却没人回复的人?让我学学《提问的智慧》,自己先向 @jiang42 @canautumn 多学学《说话的艺术》吧。就酱。
    ------------------------
    结帖,请不要再回复污染大家的时间线了。
    47jm9ozp
        20
    47jm9ozp  
       2015-05-10 11:56:06 +08:00
    @ivanchou 你要觉得冷嘲热讽随便你了,呵呵
    qinng
        21
    qinng  
       2016-07-03 22:58:26 +08:00
    试下在编译选项添加-lstdc++,使用标准 c++库可以解决。我也刚碰到这个问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3534 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 04:16 PVG 12:16 LAX 20:16 JFK 23:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86