C++ clang problème de linker
Je veux faire l'analyse des informations de débogage de code C++.
Comme je comprends clang doit être capable de gérer C++.
J'ai essayé clang myFile.cpp
Mais j'ai
clang: erreur: impossible d'exécuter la commande: le programme exécutable
clang erreur: l'éditeur de liens de commande a échoué en raison de signal 1 (l'option-v pour voir invocation).
Mise à jour:
Après le réglage de chemin de llvm-ld partiellement œuvres.Je veux dire, si j'ai effectuer
clang C:myFile.cpp -S -emit-llvm -o -
il affiche des informations .Mais il ne parvient toujours pas pour clang myFile.cpp
avec l'erreur
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)
Tout cas ce que je veux faire est d'obtenir plein les informations de débogage que possible
Par exemple pour
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();
}
- Je obtenir
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
}
De mon enquête de clang les informations de débogage de code j'ai pensé que je devrais obtenir de l'info pour stamBase trop!
Comment je cours clang correctement pour acceptig complète les informations de débogage et de prévention de clang erreurs
OriginalL'auteur Yakov | 2011-08-09
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez besoin pour installer un éditeur de liens. GNU ld sera très bien; vous devriez être en mesure de l'installer via votre gestionnaire de paquets.
Modifier: Il y a également une LLVM de l'éditeur de liens, moins populaire, mais ce qui serait hors de la boîte avec clang une fois installé (il suffit de l'ajouter à la
PATH
un re-runclang
.)llvm-ld devrait le faire
soit ld ou d'or, les deux doivent travailler. ld a l'avantage d'être standard et multi-plateforme.
Supposons que j'ai installé llvm-ld ou GNU-ld-ld.comment dois-je exécuter clang maintenant avec mon fichier cpp?
J'ai llvm-ld exe. Il est ajouté au chemin d'accès.Mais j'obtiens toujours la même erreur.
OriginalL'auteur slaphappy