我是 clang 和 llvm 以及这个邮件论坛的新手。我正在尝试使用“mingw32 2.9 版的cland 二进制文件”和“mingw32 2.9 版的llvm 二进制文件”在我的Windows xp 32 位系统上构建cland。我遵循以下步骤:
- 下载 mingw 到目录 (C:/MinGW)
- 下载“mingw32 的 clang2.9 二进制文件”和“mingw32 的 llvm-2.9 二进制文件”
- 将两者都提取到mingw的同一目录(C:/MinGW)
将路径 C:/MinGW/bin 设置为 PATH 环境。然后我写了一个简单的代码
#include
int main()
{
printf("hello world\n");
返回0;
}
然后编译代码
clang hello.cpp -o hello.exe
它编译得很好
但是当我尝试执行它时
clang hello.exe 它给出了以下错误
** * ** * ** * ** * ** ERROR * ** * ** * ** * ** * *
hello.exe:crt1.c:(.text+0x280): mainCRTStartup'
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o:crt1.c:(.text+0x280): firs
t defined here
hello.exe:crt1.c:(.text+0x2a0): multiple definition of
WinMainCRTStartup'c 的多重定义:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o:crt1.c:(.text+0x2a0): 这里首先定义 hello.exe :crt1.c:(.text+0x2c0): atexit'
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o:crt1.c:(.text+0x2c0): firs
t defined here
hello.exe:crt1.c:(.text+0x2d0): multiple definition of
onexit的多重定义'c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o: crt1.c:(.text+0x2d0): 第一个定义在这里 hello.exe:cygming-crtbegin.c:(.text+0x2e0): 多重定义__gcc_regist
er_frame'
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o:cygming-crtbegin.c:(.text+0x0):
first defined here
hello.exe:cygming-crtbegin.c:(.text+0x36c): multiple definition of
_gcc_deregi ster_frame' c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o:cygming-crtbegin.c:(.text+0x8c) : 首先在这里定义 hello.exe:crt1.c :(.bss+0x4): _argc'
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o:crt1.c:(.bss+0x4): first d
efined here
hello.exe:crt1.c:(.bss+0x0): multiple definition of
_argv 的多重定义'c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../crt2.o:crt1.c: (.bss+0x0): 首先定义在这里 c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o:cygming-crtbegin.c:(.text+0x85) : 未定义的参考to `_Jv_RegisterClasses' collect2: ld 返回 1 exit status clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
* ** * ** * ** * ** * ** * ** * ** *** * ** * * ]
我该如何解决这个问题?