2

我是 clang 和 llvm 以及这个邮件论坛的新手。我正在尝试使用“mingw32 2.9 版的cland 二进制文件”和“mingw32 2.9 版的llvm 二进制文件”在我的Windows xp 32 位系统上构建cland。我遵循以下步骤:

  1. 下载 mingw 到目录 (C:/MinGW)
  2. 下载“mingw32 的 clang2.9 二进制文件”和“mingw32 的 llvm-2.9 二进制文件”
  3. 将两者都提取到mingw的同一目录(C:/MinGW)
  4. 将路径 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 ofWinMainCRTStartup'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 ofonexit的多重定义'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) * ** * ** * ** * ** * ** * ** * ** *** * ** * * ]
我该如何解决这个问题?

4

1 回答 1

0

这是一个如何从 Windows 上的源代码编译 Clang 的链接,文章讨论了 Windows 上的 Objective-C 和 Clang,你可以放心地忽略它并使用所描述的技术来构建 Clang。生成的编译器将毫无问题地编译您的 C++ 代码。或者,您可以下载作者编译的 Clang 3.1:

http://solarianprogrammer.com/2012/03/21/clang-objective-c-windows/

于 2012-03-29T15:47:04.020 回答