ошибка компоновщика clang на mingw32 - PullRequest
2 голосов
/ 28 марта 2012

Я новичок в clang и llvm и на этом форуме. Я пытаюсь собрать cland на моей 32-битной системе Windows XP, используя «cland binaries для mingw32 версии 2.9» и «llvm binaries для mingw32 версии 2.9». Я следую следующие шаги:

  1. скачать mingw в каталоге (C: / MinGW)
  2. скачать "исполняемые файлы clang2.9 для mingw32" и "исполняемые файлы llvm-2.9 для mingw32"
  3. извлеките оба из одной и той же директории mingw (C: / MinGW)
  4. установить путь C: / MinGW / bin в среду PATH. Затем я пишу один простой код

    # включают
    int main ()
    {
    printf ("Привет, мир \ 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): 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 / бен /../ Библиотека / 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 / бен /../ Библиотека / GCC / mingw32 / 4.6.2 / crtbegin.o:. cygming-crtbegin.c :( текст + 0x85) : неопределенная ссылка на `_Jv_RegisterClasses ' collect2: ld вернул 1 статус выхода лязг: ошибка: линкер (с помощью НКА) команда не удалось с выход код 1 (использование -v в увидеть призывание) *****************************]
Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 29 марта 2012

Вот ссылка на то, как вы можете скомпилировать Clang из источников в Windows, в статье рассказывается о Objective-C и Clang в Windows, вы можете смело игнорировать это и использовать методику, описанную для сборки Clang.Получившийся компилятор скомпилирует ваш код C ++ без проблем.В качестве альтернативы вы можете скачать скомпилированный автор Clang 3.1:

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

...