Code Monkey home page Code Monkey logo

Comments (5)

kgfly avatar kgfly commented on June 2, 2024 4

Building is SRC a very tedious work. Ubuntu no longer provides installation package anymore.

Is it possible for the repro owner to provide

  1. a Windows installation exe?
  2. an Ubuntu installation package?

Thanks.

from lldb-mi.

tkrasnukha avatar tkrasnukha commented on June 2, 2024

Hello,

You'll have to build LLVM by yourself. Seems like pre-build binaries are built with the option LLVM_INSTALL_TOOLCHAIN_ONLY enabled.

from lldb-mi.

tschied avatar tschied commented on June 2, 2024

Hello tkrasnukha
Thanks a lot for the hint. There is this list of projects associated with LLVM. Do you think I should download and build every single one? So far I only tried to build LLM source code (.sig)

cmake .\CMakeLists.txt on the ones with the arrow

llvm-project monorepo source code (.sig)
LLVM source code (.sig)                       <-- appaently succeded: now available: LLVMConfig.cmake LLVM-Config.cmake
Clang source code (.sig)
compiler-rt source code (.sig)
libclc source code (.sig)
libc++ source code (.sig)
libc++abi source code (.sig)
libunwind source code (.sig)
LLD Source code (.sig)
LLDB Source code (.sig)
OpenMP Source code (.sig)
Polly Source code (.sig)
clang-tools-extra (.sig)
Flang Source code (.sig)
LLVM Test Suite (.sig)

So that took me one step further in the quest to build lldb-mi.
Still I get the same errors, although I added the exact location (folder) to the environment variable PATH.
I also tried to add a line in the CMakeLists.txt but I think I don't get the syntax right:
set(LLVM_DIR "C:\Users\Tom\Documents...\LLVM\llvm-11.0.0.src\lib\cmake\llvm")

Is there another way to tell it to look at that place? Did not find out how to "Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH" in the CMake GUI

Thanks again!

Cheers

from lldb-mi.

tkrasnukha avatar tkrasnukha commented on June 2, 2024

Do you think I should download and build every single one?

llvm-project monorepo source code should be enough, I think it contains all necessary for building lldb-mi.

You should not only build the project but also install it. In the build directory LLVMConfig.cmake is located in lib/cmake/llvm, but in the install directory it will be in the root.

Then you just pass -DCMAKE_PREFIX_PATH=your/installation/directory/path to CMake to build lldb-mi. See this section of the manual. There are not many differences between building on Windows and Linux.

from lldb-mi.

TheLonelyAdventurer avatar TheLonelyAdventurer commented on June 2, 2024

I have managed to generate a Visual Studio project (I used cmake-gui after building llvm) and start the build, but apparently, it fails to link because of undefined references.

The symbols in questions are these:

Error Object Symbol Referenced in
LNK2019 MICmdCmdData.obj bool __cdecl llvm::getAsUnsignedInteger(class llvm::StringRef,unsigned int,unsigned __int64 &) public: bool __cdecl llvm::StringRef::getAsInteger<unsigned int>(unsigned int,unsigned int &)const
LNK2019 MICmdCmdData.obj public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl llvm::Twine::str(void)const class CMIUtilString __cdecl `anonymous namespace'::IntToHexAddrStr(unsigned int)`
LNK2001 MICmdCmdSymbol.obj public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl llvm::Twine::str(void)const [produced object]
LNK2019 MIDriverMain.obj void __cdecl llvm::EnablePrettyStackTrace(void) public: __cdecl llvm::PrettyStackTraceProgram::PrettyStackTraceProgram(int,char const * const *)
LNK2019 MIDriverMain.obj public: virtual __cdecl llvm::PrettyStackTraceEntry::~PrettyStackTraceEntry(void) public: virtual __cdecl llvm::PrettyStackTraceProgram::~PrettyStackTraceProgram(void)
LNK2001 MIDriverMain.obj public: virtual void __cdecl llvm::PrettyStackTraceProgram::print(class llvm::raw_ostream &)const [produced object]
LNK2019 MIDriverMain.obj void __cdecl llvm::sys::PrintStackTraceOnErrorSignal(class llvm::StringRef,bool) main
LNK2019 MIUtilFileStd.obj bool __cdecl llvm::ConvertUTF8toWide(char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &) public: bool __cdecl CMIUtilFileStd::CreateWrite(class CMIUtilString const &,bool &)

Build log (in italian):
immagine

Compilazione avviata...
1>------ Inizio compilazione: Progetto: ZERO_CHECK, Configurazione: Debug x64 ------
2>------ Inizio compilazione: Progetto: lldb-mi, Configurazione: Debug x64 ------
3>------ Compilazione ignorata: Progetto: acc_gen, Configurazione: Debug x64 ------
3>Progetto non selezionato da compilare per la configurazione della soluzione. 
4>------ Compilazione ignorata: Progetto: intrinsics_gen, Configurazione: Debug x64 ------
4>Progetto non selezionato da compilare per la configurazione della soluzione. 
5>------ Compilazione ignorata: Progetto: omp_gen, Configurazione: Debug x64 ------
5>Progetto non selezionato da compilare per la configurazione della soluzione. 
2>MICmdCmdData.obj : error LNK2019: riferimento al simbolo esterno "bool __cdecl llvm::getAsUnsignedInteger(class llvm::StringRef,unsigned int,unsigned __int64 &)" (?getAsUnsignedInteger@llvm@@YA_NVStringRef@1@IAEA_K@Z) non risolto nella funzione "public: bool __cdecl llvm::StringRef::getAsInteger<unsigned int>(unsigned int,unsigned int &)const " (??$getAsInteger@I@StringRef@llvm@@QEBA_NIAEAI@Z)
2>MICmdCmdData.obj : error LNK2019: riferimento al simbolo esterno "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl llvm::Twine::str(void)const " (?str@Twine@llvm@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) non risolto nella funzione "class CMIUtilString __cdecl `anonymous namespace'::IntToHexAddrStr(unsigned int)" (?IntToHexAddrStr@?A0xf0cdb5b4@@YA?AVCMIUtilString@@I@Z)
2>MICmdCmdSymbol.obj : error LNK2001: simbolo esterno "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl llvm::Twine::str(void)const " (?str@Twine@llvm@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) non risolto
2>MIDriverMain.obj : error LNK2019: riferimento al simbolo esterno "void __cdecl llvm::EnablePrettyStackTrace(void)" (?EnablePrettyStackTrace@llvm@@YAXXZ) non risolto nella funzione "public: __cdecl llvm::PrettyStackTraceProgram::PrettyStackTraceProgram(int,char const * const *)" (??0PrettyStackTraceProgram@llvm@@QEAA@HPEBQEBD@Z)
2>MIDriverMain.obj : error LNK2019: riferimento al simbolo esterno "public: __cdecl llvm::PrettyStackTraceEntry::PrettyStackTraceEntry(void)" (??0PrettyStackTraceEntry@llvm@@QEAA@XZ) non risolto nella funzione "public: __cdecl llvm::PrettyStackTraceProgram::PrettyStackTraceProgram(int,char const * const *)" (??0PrettyStackTraceProgram@llvm@@QEAA@HPEBQEBD@Z)
2>MIDriverMain.obj : error LNK2019: riferimento al simbolo esterno "public: virtual __cdecl llvm::PrettyStackTraceEntry::~PrettyStackTraceEntry(void)" (??1PrettyStackTraceEntry@llvm@@UEAA@XZ) non risolto nella funzione "public: virtual __cdecl llvm::PrettyStackTraceProgram::~PrettyStackTraceProgram(void)" (??1PrettyStackTraceProgram@llvm@@UEAA@XZ)
2>MIDriverMain.obj : error LNK2001: simbolo esterno "public: virtual void __cdecl llvm::PrettyStackTraceProgram::print(class llvm::raw_ostream &)const " (?print@PrettyStackTraceProgram@llvm@@UEBAXAEAVraw_ostream@2@@Z) non risolto
2>MIDriverMain.obj : error LNK2019: riferimento al simbolo esterno "void __cdecl llvm::sys::PrintStackTraceOnErrorSignal(class llvm::StringRef,bool)" (?PrintStackTraceOnErrorSignal@sys@llvm@@YAXVStringRef@2@_N@Z) non risolto nella funzione main
2>MIUtilFileStd.obj : error LNK2019: riferimento al simbolo esterno "bool __cdecl llvm::ConvertUTF8toWide(char const *,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &)" (?ConvertUTF8toWide@llvm@@YA_NPEBDAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) non risolto nella funzione "public: bool __cdecl CMIUtilFileStd::CreateWrite(class CMIUtilString const &,bool &)" (?CreateWrite@CMIUtilFileStd@@QEAA_NAEBVCMIUtilString@@AEA_N@Z)
2>C:\Users\rmanc\Documents\llvm-project\build-lldb-mi\src\Debug\lldb-mi.exe : fatal error LNK1120: 8 esterni non risolti
2>Compilazione progetto "lldb-mi.vcxproj" NON COMPLETATA.
6>------ Inizio compilazione: Progetto: ALL_BUILD, Configurazione: Debug x64 ------
7>------ Compilazione ignorata: Progetto: INSTALL, Configurazione: Debug x64 ------
7>Progetto non selezionato da compilare per la configurazione della soluzione. 
========== Compilazione: 2 completate, 1 non riuscite, 0 aggiornate, 4 ignorate ==========

from lldb-mi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.