2014-12-02 89 views
1

我试图将编译分解为这四个步骤,但最后一个对我来说似乎有问题。ld:无法找到-lstdC++

cpp hello.cpp > hello.i 
g++ -S hello.i 
as -o hello.o hello.s 
ld -o hello hello.o -lstdc++ 

我搜索了herehere这个问题,但没有帮助。

在详细模式下运行给我

attempt to open hello.o succeeded 
hello.o 
attempt to open /usr/i686-linux-gnu/lib32/libstdc++.so failed 
attempt to open /usr/i686-linux-gnu/lib32/libstdc++.a failed 
attempt to open //usr/local/lib32/libstdc++.so failed 
attempt to open //usr/local/lib32/libstdc++.a failed 
attempt to open //lib32/libstdc++.so failed 
attempt to open //lib32/libstdc++.a failed 
attempt to open //usr/lib32/libstdc++.so failed 
attempt to open //usr/lib32/libstdc++.a failed 
attempt to open //usr/local/lib/i386-linux-gnu/libstdc++.so failed 
attempt to open //usr/local/lib/i386-linux-gnu/libstdc++.a failed 
attempt to open //usr/local/lib/libstdc++.so failed 
attempt to open //usr/local/lib/libstdc++.a failed 
attempt to open //lib/i386-linux-gnu/libstdc++.so failed 
attempt to open //lib/i386-linux-gnu/libstdc++.a failed 
attempt to open //lib/libstdc++.so failed 
attempt to open //lib/libstdc++.a failed 
attempt to open //usr/lib/i386-linux-gnu/libstdc++.so failed 
attempt to open //usr/lib/i386-linux-gnu/libstdc++.a failed 
attempt to open //usr/lib/libstdc++.so failed 
attempt to open //usr/lib/libstdc++.a failed 
ld: cannot find -lstdc++ 

有什么建议?提前致谢。

+0

'G ++ HELLO.CPP轮候册, - verbose'将得到GCC告诉你在哪里它的发现'的libstdC++' 。这应该让你开始弄清楚如何让'ld'找到它。 – 2014-12-02 07:02:21

回答

4

而不是直接调用链接器,尝试调用它间接通过gccg++

cpp hello.cpp > hello.i 
g++ -S hello.i 
as -o hello.o hello.s 
g++ -o hello hello.o 
+0

我认为这可能不是间接的......如果我正确记得,'ld'现在是一个不同的工具,为此目的而弃用。 – Potatoswatter 2014-12-02 04:53:22

+0

其实我的主要目标是学习/学习/处理链接器,而不是创建一个可执行文件和'ld'命令让我为之哭泣。 – sinister 2014-12-02 05:04:27