Yo quiero hacer el análisis de la información de depuración de código C++.
Como yo lo entiendo clang debe ser capaz de manejar C++.

Traté de clang myFile.cpp
Pero me da

clang: error: no se puede ejecutar el comando: programa no ejecutable
clang error: linker error de comando de la señal 1 (uso -v para ver invocación).

Actualización:
Después de configurar la ruta para llvm-ld parcialmente las obras.Me refiero a que si puedo realizar

clang C:myFile.cpp -S -emit-llvm -o -
se emite algo de información .Pero ella aún no para clang myFile.cpp
con error


clang version 2.9 (tags/RELEASE_29/final)
Target: i686-pc-win32
Thread model: posix
"C:/FrontEnd/llvm/bin/Debug/clang.exe" -cc1 -triple i686-pc-win32 -emit-obj -mrelax-all -disable-free -main-file-name BinarySearch_Kernels.cpp -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -momit-leaf-frame-pointer -v -resource-dir C:/FrontEnd/l
lvm/bin/Debug..\lib\clang\2.9 -ferror-limit 19 -fmessage-length 280 -fcxx-exceptions -fexceptions -fms-extensions -fmsc-version=1300 -fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o C:/Users/ilipov/AppData/Local/Temp/cc-563130.o -x c++ C:\clang\BinarySearch_Kernels
.cpp
clang -cc1 version 2.9 based upon llvm 2.9 hosted on i686-pc-win32
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
C:/FrontEnd/llvm/bin/Debug/../lib/clang/2.9/include
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include
End of search list.
"link.exe" -out:a.out -defaultlib:libcmt -nologo C:/Users/ilipov/AppData/Local/Temp/cc-563130.o
clang: error: unable to execute command: program not executable
clang: error: linker command failed due to signal 1 (use -v to see invocation)

Cualquier caso, lo que quiero hacer es conseguir como de depuración completa información como sea posible

Por ejemplo para


class stamBase { public: int get1(){return 2;}; int get0(){return 0;} }; class stamDer : public stamBase { public: int get1(){return 1;} }; void func() { stamDer d; int x = d.get1(); }

Puedo obtener

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" target triple = "i686-pc-win32" %class.stamDer = type { i8 } define void @_Z4funcv() { entry: %d = alloca %class.stamDer, align 1 %x = alloca i32, align 4 %call = call i32 @_ZN7stamDer4get1Ev(%class.stamDer* %d) store i32 %call, i32* %x, align 4 ret void } define linkonce_odr i32 @_ZN7stamDer4get1Ev(%class.stamDer* %this) nounwind align 2 { entry: %this.addr = alloca %class.stamDer*, align 4 store %class.stamDer* %this, %class.stamDer** %this.addr, align 4 %this1 = load %class.stamDer** %this.addr ret i32 1 }

A partir de mi investigación de clang información de depuración de código pensé que debía obtener la información de stamBase demasiado!
Cómo puedo ejecutar sonar correctamente para acceptig completo de la información de depuración y la prevención de clang errores

Usted necesita un enlazador. stackoverflow.com/questions/3925409/linker-for-clang (al Parecer no se me permite escribir esto como una respuesta. Estúpido sitio.)

OriginalEl autor Yakov | 2011-08-09

1 Comentario

  1. 4

    Creo que usted necesita para instalar un enlazador. GNU ld va a estar bien; usted debería ser capaz de instalar a través de su gestor de paquetes.

    Editar: también Hay un LLVM vinculador, menos popular, pero que se ejecute fuera de la caja con clang una vez instalado (acaba de añadir a la PATH una re-ejecutar clang.)

    Yo uso sonar con llvm – hay otra opción para el vinculador?
    llvm-ld debe hacerlo
    ya sea ld o de oro, ambos deben de trabajar. ld tiene la ventaja de ser estándar y de la cruz-plataforma.
    Supongamos que he instalado llvm-ld o GNU-ld-ld.¿cómo debo ejecutar clang ahora con mi archivo cpp?
    He llvm-ld exe. Fue agregado a la ruta.Pero me sigue apareciendo el mismo error.

    OriginalEl autor slaphappy

Dejar respuesta

Please enter your comment!
Please enter your name here