mingw32上clang的链接器错误

时间:2012-03-28 02:55:02

标签: mingw32

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

  1. 在目录(C:/ MinGW)下载mingw
  2. 下载“mingw32的clang2.9二进制文件”和“mingw32的llvm-2.9二进制文件”
  3. 在mingw(C:/ MinGW)
  4. 的同一目录中提取
  5. 将路径C:/ MinGW / bin设置为PATH环境。 然后我写了一个简单的代码

    的#include
      int main()
       {
           printf(“hello world \ n”);
        返回0;
       }

  6. 然后编译代码

    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):firs 这里定义了 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):firs 这里定义了 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 :(文本+ 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):第一个d 在这里定义 C:/ MinGW的/ bin中/../ LIB / GCC /的mingw32 / 4.6.2 / crtbegin.o:cygming-crtbegin.c :(文本+ 0x85) :未定义的引用`_Jv_RegisterClasses' collect2:ld返回1退出状态 clang:错误:       链接       (通过       GCC)       命令       失败       同       出口       码       1       (使用       -v       至       看到       调用) 的 * ** * ** * ** * ** * ** * ** * ** * ** * ** * * ]
    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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