C++++和G++编译时的C++错误

C++++和G++编译时的C++错误,c++,g++,llvm,llvm-clang,clang++,C++,G++,Llvm,Llvm Clang,Clang++,我正在做一个修改用户程序控制流的项目。我正在为此使用llvm。最后,我使用clang++生成了一组.s文件。然后我使用g++将它们全部合并。我不能用clang++代替g++,因为它在这个阶段会产生很多错误,这不是当前的问题 对于c程序gcc和clang,一切都运行得很好。但是对于C++用户代码G++,CLAN+++在执行< /P>时会遇到以下错误 g++-O3-rdynamic*.s-o main.exe-Wa,-Iressource-lstdc++-lm-ldl 根据我在互联网上的搜索,对于大

我正在做一个修改用户程序控制流的项目。我正在为此使用llvm。最后,我使用clang++生成了一组.s文件。然后我使用g++将它们全部合并。我不能用clang++代替g++,因为它在这个阶段会产生很多错误,这不是当前的问题

对于c程序gcc和clang,一切都运行得很好。但是对于C++用户代码G++,CLAN+++在执行< /P>时会遇到以下错误 g++-O3-rdynamic*.s-o main.exe-Wa,-Iressource-lstdc++-lm-ldl

根据我在互联网上的搜索,对于大多数人来说,发生这个错误是因为他们使用了clang而不是clang++

叮当声

叮当声版 clang版本3.1分支/发行版\u 31

目标:x86_64-unknown-linux-gnu

线程模型:posix

g++

g++版本

g++Ubuntu/Linaro 4.7.3-1ubuntu1 4.7.3

我不知道真正的问题在哪里。但我知道,如果我只是使用clang++生成*.s文件,然后使用g++而不通过llvm,它就可以正常工作。因为它不会抱怨到最后,然后g++会抱怨,所以我不知道实际的错误发生在哪里。正如我前面所说的,如果原始代码是使用clang和gcc编写的C,那么它就可以正常工作

对于如何继续或解决问题的任何帮助,我们将不胜感激

特别是在这种情况下可能导致什么

未定义对_cxx_global_var_init的引用 键入到
我不能使用clang++因为它在这个阶段会产生很多错误这不是当前的问题-这正是问题所在。您需要使用CLAN++而不是CLAN C++代码。您不需要显式链接LIbSTDC++和LIBM。g++命令应该暗示这一点。@DavidHammen不,我不是这个意思。我的意思是,在最后一个阶段,我不能使用clang++而不是g++。我希望它是清楚的。clang和gcc只用于项目中的c代码,我使用clang++和g++cpp@KerrekSB谢谢你的提示。你能告诉我怎么操作吗?你用的是什么操作系统?您使用的是什么版本的gcc和clang?你安装正确了吗?您的问题不包含任何此类信息。
/tmp/ccUdIbL3.o:(.ctors+0x0): undefined reference to `global constructors keyed to a'
/tmp/cch9k7on.o: In function `global constructors keyed to a':
_GLOBAL__I_a.optin:(.text.startup+0x1): undefined reference to `__cxx_global_var_init'
/tmp/ccvYrG8J.o:(.ctors+0x0): undefined reference to `global constructors keyed to a'
/tmp/cccPFs4G.o:(.ctors+0x0): undefined reference to `global constructors keyed to a'