Osman Zakir via llvm-dev
2018-Dec-12 15:14 UTC
[llvm-dev] Using LLD to link against third-party libraries? How?
How can I tell CMake during the configuration step where to find my zlib
installation?
________________________________
From: blubee blubeeme <gurenchan at gmail.com>
Sent: Wednesday, December 12, 2018 7:31 PM
To: Osman Zakir
Cc: llvm-dev
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
I would agree with the next email from
Brian Cain
If you do not have specific reason to want to use llvm lld try to use your
system provided c++ linker.
Bootstrapping the llvm c++ c++abi can be troublesome on Unix like platforms and
I have no experience doing anything like that on windows.
If you already have a c++ toochain and still want to attempt this then
you'll need to svn checkout or git clone a version of the llvm toolchain and
build it with your native toolchain then switch to using clang and lld.
if you do not have a native c++ toolchain; let's cross that bridge only if
you need to.
A complete LLVM toolchain includes
llvm
clang
clang-extra-tools
lld
lldb
polly
compiler-rt
openmp
libcxx
libcxx-abi
testsuite
There's "Getting Started Quickly (A Summary" :
https://llvm.org/docs/GettingStarted.html
With steps to build a complete toolchain. Compilation could take a long time.
It would be simpler to use your native c++ and linker unless they do not provide
c++17 in which case the above link can get you started.
Best
On Wed, Dec 12, 2018 at 8:57 PM Osman Zakir <osmanzakir90 at
hotmail.com<mailto:osmanzakir90 at hotmail.com>> wrote:
So how do I get it to build libcxx and libcxxabi? I got it from the mono repo
and enabled lld, clang, libcxx and libcxxabi. But I built the two main CMake
targets only--all_build and install. What else do I have to do? Please let me
know.
________________________________
From: Zachary Turner <zturner at google.com<mailto:zturner at
google.com>>
Sent: Wednesday, December 12, 2018 11:10 AM
To: blubee blubeeme
Cc: Osman Zakir; David Greene; llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
I see you’re using lld-link, so we’re talking about Windows here.
Have you gotten it working with the Microsoft linker? Because if so, just
replace link.exe with lld-link.exe and it will work.
Btw, it’s a bit odd to use clang++ on Windows. The recommended workflow is to
use clang-cl. It’s possible to use clang++, but you’re just setting yourself up
for more difficulty
On Tue, Dec 11, 2018 at 7:23 PM blubee blubeeme via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
I couldn't get it to build libcxx...
You need c++ and c++abi to compile c++ code.
On Wed, Dec 12, 2018, 07:01 Osman Zakir via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
LLVM on a Developer Command Prompt. The ones I want to fix first are the ones
from Boost and Jinja2Cpp. I saw some from those as well.
If there any standard library ones missing, could it be because I couldn't
get it to build libcxx? I did try to include that, but it seems to be missing.
What should I do?
________________________________
From: David Greene <dag at cray.com<mailto:dag at cray.com>>
Sent: Wednesday, December 12, 2018 3:30 AM
To: Osman Zakir
Cc: blubee blubeeme; llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
Are you linking with a C++ compiler? A lot of those missing symbols
look like they come from the C++ standard library.
-David
Osman Zakir via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>> writes:
> @blubee blubeeme So what do you think? Got any ideas?
> ----------------------------------------------------------------------
> From: Osman Zakir <osmanzakir90 at hotmail.com<mailto:osmanzakir90 at
hotmail.com>>
> Sent: Wednesday, December 12, 2018 1:43 AM
> To: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
> Subject: Re: [llvm-dev] Using LLD to link against third-party
> libraries? How?
> In my code here https://github.com/DragonOsman/currency_converter , I
> used C++17 and managed to get it to work (though I'm only using
> std::map::insert_or_assign() from C++17). And I'm using Windows, so I
> shouldn't use LDFLAGS or CXXFLAGS as environment variables. I'll
use
> them directly on the compiler command line instead. The libraries I
> need to link against are
> C:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib and
> C:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib.
>
> I tried to build it with this flag:
> "
> clang++ -std=c++17 -Wall -pedantic -
> D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING -
> Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD -
> D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING -
> D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32 -
> D_WIN32_WINDOWS -D_NDEBUG -fexceptions -
> IC:/Jinja2Cpp/install_x64/include -IC:/json/single_include -
> IC:/boost_1_68_0 -
> LC:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib -
> LC:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib
> currency_converter.cpp -o currency_converter.exe
> "
> And I got these warnings and errors from LLD:
>
> "
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: __std_terminate (defined in libvcruntime.lib
> (ehhelpers.obj)) [LNK4217]
> lld-link: error: undefined symbol: "public: __cdecl
> jinja2::Template::Template(class jinja2::TemplateEnv *)"
> (??0Template at jinja2@@QEAA at PEAVTemplateEnv@1@@Z)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: class
> nonstd::expected_lite::expected<void, class
> jinja2::ErrorInfoTpl<char>> __cdecl jinja2::Template::LoadFromFile
> (class std::basic_string<char, struct std::char_traits<char>,
class
> std::allocator<char>> const &)"
> (?LoadFromFile at Template@jinja2@@QEAA?AV?$expected at XV?$ErrorInfoTpl at
D@jinja2@@@expected_
> lite at nonstd@@AEBV?$basic_string at DU?$char_traits at
D@std@@V?$allocator at D@2@@std@@@Z)
>
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: class
> std::basic_string<char, struct std::char_traits<char>, class
> std::allocator<char>> __cdecl
jinja2::Template::RenderAsString(class
> std::unordered_map<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> jinja2::Value, struct std::hash<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>>,
struct
> std::equal_to<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>>,
class
> std::allocator<struct std::pair<class std::basic_string<char,
struct
> std::char_traits<char>, class std::allocator<char>> const,
class
> jinja2::Value>>> const &)"
> (?RenderAsString at Template@jinja2@@QEAA?AV?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@AEBV?$unordered_map at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@VValue at jinja2@@U?$hash at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@@2 at U?$equal_to at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@@2 at V?$allocator at U?$pair@$$CBV?$basic_string
at DU?$char_
> traits at D@std@@V?$allocator at D@2@@std@@VValue at
jinja2@@@std@@@2@@4@@Z)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: __cdecl
> jinja2::Template::~Template(void)" (??1Template at jinja2@@QEAA at
XZ)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("int
> `void __cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> basic_string_view<char, struct
> std::char_traits<char>>::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const
*)'::
> `1'::dtor$114"
> (?dtor$114@?0???$handle_request at U?$basic_string_body at DU?$char_traits
at D@std@@V?
> $allocator at D@2@@http at beast@boost@@V?$allocator at
D@std@@AEAUsend_lambda at server_
> session@@@@YAXV?$basic_string_view at DU?$char_traits at
D@std@@@boost@@$$QEAU?
> $message@$00U?$basic_string_body at DU?$char_traits at D@std@@V?$allocator
at D@2@@http at beast@boost@@V?
> $basic_fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_
> session@@PEBD3 at Z@4HA))
>
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: _CxxThrowException (defined in
> libvcruntime.lib(throw.obj)) [LNK4217]
> lld-link: error: undefined symbol: "class
> boost::system::error_category const & __cdecl
> boost::system::detail::system_category_ncx(void)"
> (?system_category_ncx at detail@system at boost@@YAAEBVerror_category at
23@XZ)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class
> boost::system::error_category const & __cdecl
> boost::system::system_category(void)"
> (?system_category at system@boost@@YAAEBVerror_category at 12@XZ))
>
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: __RTDynamicCast (defined in libvcruntime.lib
> (rtti.obj)) [LNK4217]
> lld-link: error: undefined symbol: "class
> boost::system::error_category const & __cdecl
> boost::system::detail::generic_category_ncx(void)"
> (?generic_category_ncx at detail@system at boost@@YAAEBVerror_category at
23@XZ)
>
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class
> boost::system::error_category const & __cdecl
> boost::system::generic_category(void)"
> (?generic_category at system@boost@@YAAEBVerror_category at 12@XZ))
> clang++: error: linker command failed with exit code 1 (use -v to see
> invocation)
> "
>
>
> * GitHub - DragonOsman/currency_converter: Application for Computer
> Science course
> Google Maps + Currency Converter Web Application. Application for
> Computer Science course. This is a currency converter web
> application with the frontend and a backend.
> github.com<http://github.com>
>
> *
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/d2dfb880/attachment.html>
Zachary Turner via llvm-dev
2018-Dec-12 15:37 UTC
[llvm-dev] Using LLD to link against third-party libraries? How?
You shouldn't need zlib to build. I think we discussed in a previous thread that the only components you should need to complete a build are Microsoft Visual Studio, git, and CMake. On Wed, Dec 12, 2018 at 7:14 AM Osman Zakir via llvm-dev < llvm-dev at lists.llvm.org> wrote:> How can I tell CMake during the configuration step where to find my zlib > installation? > ------------------------------ > *From:* blubee blubeeme <gurenchan at gmail.com> > *Sent:* Wednesday, December 12, 2018 7:31 PM > > *To:* Osman Zakir > *Cc:* llvm-dev > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > I would agree with the next email from Brian Cain > > If you do not have specific reason to want to use llvm lld try to use your > system provided c++ linker. > > Bootstrapping the llvm c++ c++abi can be troublesome on Unix like > platforms and I have no experience doing anything like that on windows. > > If you already have a c++ toochain and still want to attempt this then > you'll need to svn checkout or git clone a version of the llvm toolchain > and build it with your native toolchain then switch to using clang and lld. > > if you do not have a native c++ toolchain; let's cross that bridge only if > you need to. > > A complete LLVM toolchain includes > llvm > clang > clang-extra-tools > lld > lldb > polly > compiler-rt > openmp > libcxx > libcxx-abi > testsuite > There's "Getting Started Quickly (A Summary" : > https://llvm.org/docs/GettingStarted.html > > With steps to build a complete toolchain. Compilation could take a long > time. > > It would be simpler to use your native c++ and linker unless they do not > provide c++17 in which case the above link can get you started. > > Best > > On Wed, Dec 12, 2018 at 8:57 PM Osman Zakir <osmanzakir90 at hotmail.com> > wrote: > > So how do I get it to build libcxx and libcxxabi? I got it from the mono > repo and enabled lld, clang, libcxx and libcxxabi. But I built the two > main CMake targets only--all_build and install. What else do I have to > do? Please let me know. > ------------------------------ > *From:* Zachary Turner <zturner at google.com> > *Sent:* Wednesday, December 12, 2018 11:10 AM > *To:* blubee blubeeme > *Cc:* Osman Zakir; David Greene; llvm-dev at lists.llvm.org > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > > I see you’re using lld-link, so we’re talking about Windows here. > > Have you gotten it working with the Microsoft linker? Because if so, just > replace link.exe with lld-link.exe and it will work. > > Btw, it’s a bit odd to use clang++ on Windows. The recommended workflow is > to use clang-cl. It’s possible to use clang++, but you’re just setting > yourself up for more difficulty > On Tue, Dec 11, 2018 at 7:23 PM blubee blubeeme via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > I couldn't get it to build libcxx... > You need c++ and c++abi to compile c++ code. > > > On Wed, Dec 12, 2018, 07:01 Osman Zakir via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > LLVM on a Developer Command Prompt. The ones I want to fix first are the > ones from Boost and Jinja2Cpp. I saw some from those as well. > > If there any standard library ones missing, could it be because I couldn't > get it to build libcxx? I did try to include that, but it seems to be > missing. What should I do? > ------------------------------ > *From:* David Greene <dag at cray.com> > *Sent:* Wednesday, December 12, 2018 3:30 AM > *To:* Osman Zakir > *Cc:* blubee blubeeme; llvm-dev at lists.llvm.org > > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > > Are you linking with a C++ compiler? A lot of those missing symbols > look like they come from the C++ standard library. > > -David > > Osman Zakir via llvm-dev <llvm-dev at lists.llvm.org> writes: > > > @blubee blubeeme So what do you think? Got any ideas? > > ---------------------------------------------------------------------- > > From: Osman Zakir <osmanzakir90 at hotmail.com> > > Sent: Wednesday, December 12, 2018 1:43 AM > > To: llvm-dev at lists.llvm.org > > Subject: Re: [llvm-dev] Using LLD to link against third-party > > libraries? How? > > In my code here https://github.com/DragonOsman/currency_converter , I > > used C++17 and managed to get it to work (though I'm only using > > std::map::insert_or_assign() from C++17). And I'm using Windows, so I > > shouldn't use LDFLAGS or CXXFLAGS as environment variables. I'll use > > them directly on the compiler command line instead. The libraries I > > need to link against are > > C:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib and > > C:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib. > > > > I tried to build it with this flag: > > " > > clang++ -std=c++17 -Wall -pedantic - > > D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING - > > Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD - > > D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING - > > D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32 - > > D_WIN32_WINDOWS -D_NDEBUG -fexceptions - > > IC:/Jinja2Cpp/install_x64/include -IC:/json/single_include - > > IC:/boost_1_68_0 - > > LC:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib - > > LC:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib > > currency_converter.cpp -o currency_converter.exe > > " > > And I got these warnings and errors from LLD: > > > > " > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: __std_terminate (defined in libvcruntime.lib > > (ehhelpers.obj)) [LNK4217] > > lld-link: error: undefined symbol: "public: __cdecl > > jinja2::Template::Template(class jinja2::TemplateEnv *)" > > (??0Template at jinja2@@QEAA at PEAVTemplateEnv@1@@Z) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: class > > nonstd::expected_lite::expected<void, class > > jinja2::ErrorInfoTpl<char>> __cdecl jinja2::Template::LoadFromFile > > (class std::basic_string<char, struct std::char_traits<char>, class > > std::allocator<char>> const &)" > > (?LoadFromFile at Template@jinja2@@QEAA?AV?$expected at XV?$ErrorInfoTpl at D > @jinja2@@@expected_ > > lite at nonstd@@AEBV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@ > @std@@@Z) > > > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: class > > std::basic_string<char, struct std::char_traits<char>, class > > std::allocator<char>> __cdecl jinja2::Template::RenderAsString(class > > std::unordered_map<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > jinja2::Value, struct std::hash<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>>, struct > > std::equal_to<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>>, class > > std::allocator<struct std::pair<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>> const, class > > jinja2::Value>>> const &)" > > (?RenderAsString at Template@jinja2@@QEAA?AV?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@AEBV?$unordered_map at V?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@VValue at jinja2@@U?$hash at V?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@@2 at U?$equal_to at V?$basic_string at DU?$char_traits at D > @std@@V? > > $allocator at D@2@@std@@@2 at V?$allocator at U?$pair@$$CBV?$basic_string at DU > ?$char_ > > traits at D@std@@V?$allocator at D@2@@std@@VValue at jinja2@@@std@@@2@@4@@Z) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: __cdecl > > jinja2::Template::~Template(void)" (??1Template at jinja2@@QEAA at XZ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("int > > `void __cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > basic_string_view<char, struct > > std::char_traits<char>>::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)':: > > `1'::dtor$114" > > (?dtor$114@?0???$handle_request at U?$basic_string_body at DU?$char_traits at D > @std@@V? > > $allocator at D@2@@http at beast@boost@@V?$allocator at D@std@ > @AEAUsend_lambda at server_ > > session@@@@YAXV?$basic_string_view at DU?$char_traits at D@std@@@boost@ > @$$QEAU? > > $message@$00U?$basic_string_body at DU?$char_traits at D@std@@V?$allocator at D > @2@@http at beast@boost@@V? > > $basic_fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_ > > session@@PEBD3 at Z@4HA)) > > > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: _CxxThrowException (defined in > > libvcruntime.lib(throw.obj)) [LNK4217] > > lld-link: error: undefined symbol: "class > > boost::system::error_category const & __cdecl > > boost::system::detail::system_category_ncx(void)" > > (?system_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class > > boost::system::error_category const & __cdecl > > boost::system::system_category(void)" > > (?system_category at system@boost@@YAAEBVerror_category at 12@XZ)) > > > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: __RTDynamicCast (defined in libvcruntime.lib > > (rtti.obj)) [LNK4217] > > lld-link: error: undefined symbol: "class > > boost::system::error_category const & __cdecl > > boost::system::detail::generic_category_ncx(void)" > > (?generic_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) > > > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class > > boost::system::error_category const & __cdecl > > boost::system::generic_category(void)" > > (?generic_category at system@boost@@YAAEBVerror_category at 12@XZ)) > > clang++: error: linker command failed with exit code 1 (use -v to see > > invocation) > > " > > > > > > * GitHub - DragonOsman/currency_converter: Application for Computer > > Science course > > Google Maps + Currency Converter Web Application. Application for > > Computer Science course. This is a currency converter web > > application with the frontend and a backend. > > github.com > > > > * > > > > > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/ba6ef4bc/attachment-0001.html>
Zachary Turner via llvm-dev
2018-Dec-12 15:40 UTC
[llvm-dev] Using LLD to link against third-party libraries? How?
If you want to bootstrap clang and lld using itself, then you should pass -DCMAKE_C_COMPILER=path/to/clang-cl.exe -DCMAKE_CXX_COMPILER=path/to/clang-cl.exe -DCMAKE_LINKER=path/to/lld-link.exe. Note the clang-cl.exe. ***Not*** clang.exe or clang++.exe. On Wed, Dec 12, 2018 at 7:37 AM Zachary Turner <zturner at google.com> wrote:> You shouldn't need zlib to build. I think we discussed in a previous > thread that the only components you should need to complete a build are > Microsoft Visual Studio, git, and CMake. > > On Wed, Dec 12, 2018 at 7:14 AM Osman Zakir via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> How can I tell CMake during the configuration step where to find my zlib >> installation? >> ------------------------------ >> *From:* blubee blubeeme <gurenchan at gmail.com> >> *Sent:* Wednesday, December 12, 2018 7:31 PM >> >> *To:* Osman Zakir >> *Cc:* llvm-dev >> *Subject:* Re: [llvm-dev] Using LLD to link against third-party >> libraries? How? >> I would agree with the next email from Brian Cain >> >> If you do not have specific reason to want to use llvm lld try to use >> your system provided c++ linker. >> >> Bootstrapping the llvm c++ c++abi can be troublesome on Unix like >> platforms and I have no experience doing anything like that on windows. >> >> If you already have a c++ toochain and still want to attempt this then >> you'll need to svn checkout or git clone a version of the llvm toolchain >> and build it with your native toolchain then switch to using clang and lld. >> >> if you do not have a native c++ toolchain; let's cross that bridge only >> if you need to. >> >> A complete LLVM toolchain includes >> llvm >> clang >> clang-extra-tools >> lld >> lldb >> polly >> compiler-rt >> openmp >> libcxx >> libcxx-abi >> testsuite >> There's "Getting Started Quickly (A Summary" : >> https://llvm.org/docs/GettingStarted.html >> >> With steps to build a complete toolchain. Compilation could take a long >> time. >> >> It would be simpler to use your native c++ and linker unless they do not >> provide c++17 in which case the above link can get you started. >> >> Best >> >> On Wed, Dec 12, 2018 at 8:57 PM Osman Zakir <osmanzakir90 at hotmail.com> >> wrote: >> >> So how do I get it to build libcxx and libcxxabi? I got it from the mono >> repo and enabled lld, clang, libcxx and libcxxabi. But I built the two >> main CMake targets only--all_build and install. What else do I have to >> do? Please let me know. >> ------------------------------ >> *From:* Zachary Turner <zturner at google.com> >> *Sent:* Wednesday, December 12, 2018 11:10 AM >> *To:* blubee blubeeme >> *Cc:* Osman Zakir; David Greene; llvm-dev at lists.llvm.org >> *Subject:* Re: [llvm-dev] Using LLD to link against third-party >> libraries? How? >> >> I see you’re using lld-link, so we’re talking about Windows here. >> >> Have you gotten it working with the Microsoft linker? Because if so, just >> replace link.exe with lld-link.exe and it will work. >> >> Btw, it’s a bit odd to use clang++ on Windows. The recommended workflow >> is to use clang-cl. It’s possible to use clang++, but you’re just setting >> yourself up for more difficulty >> On Tue, Dec 11, 2018 at 7:23 PM blubee blubeeme via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >> I couldn't get it to build libcxx... >> You need c++ and c++abi to compile c++ code. >> >> >> On Wed, Dec 12, 2018, 07:01 Osman Zakir via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >> LLVM on a Developer Command Prompt. The ones I want to fix first are the >> ones from Boost and Jinja2Cpp. I saw some from those as well. >> >> If there any standard library ones missing, could it be because I >> couldn't get it to build libcxx? I did try to include that, but it seems >> to be missing. What should I do? >> ------------------------------ >> *From:* David Greene <dag at cray.com> >> *Sent:* Wednesday, December 12, 2018 3:30 AM >> *To:* Osman Zakir >> *Cc:* blubee blubeeme; llvm-dev at lists.llvm.org >> >> *Subject:* Re: [llvm-dev] Using LLD to link against third-party >> libraries? How? >> >> Are you linking with a C++ compiler? A lot of those missing symbols >> look like they come from the C++ standard library. >> >> -David >> >> Osman Zakir via llvm-dev <llvm-dev at lists.llvm.org> writes: >> >> > @blubee blubeeme So what do you think? Got any ideas? >> > ---------------------------------------------------------------------- >> > From: Osman Zakir <osmanzakir90 at hotmail.com> >> > Sent: Wednesday, December 12, 2018 1:43 AM >> > To: llvm-dev at lists.llvm.org >> > Subject: Re: [llvm-dev] Using LLD to link against third-party >> > libraries? How? >> > In my code here https://github.com/DragonOsman/currency_converter , I >> > used C++17 and managed to get it to work (though I'm only using >> > std::map::insert_or_assign() from C++17). And I'm using Windows, so I >> > shouldn't use LDFLAGS or CXXFLAGS as environment variables. I'll use >> > them directly on the compiler command line instead. The libraries I >> > need to link against are >> > C:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib and >> > C:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib. >> > >> > I tried to build it with this flag: >> > " >> > clang++ -std=c++17 -Wall -pedantic - >> > D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING - >> > Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD - >> > D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING - >> > D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32 - >> > D_WIN32_WINDOWS -D_NDEBUG -fexceptions - >> > IC:/Jinja2Cpp/install_x64/include -IC:/json/single_include - >> > IC:/boost_1_68_0 - >> > LC:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib - >> > LC:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib >> > currency_converter.cpp -o currency_converter.exe >> > " >> > And I got these warnings and errors from LLD: >> > >> > " >> > lld-link: warning: >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally >> > defined symbol imported: __std_terminate (defined in libvcruntime.lib >> > (ehhelpers.obj)) [LNK4217] >> > lld-link: error: undefined symbol: "public: __cdecl >> > jinja2::Template::Template(class jinja2::TemplateEnv *)" >> > (??0Template at jinja2@@QEAA at PEAVTemplateEnv@1@@Z) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ >> > _cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > boost::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)" >> > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ >> @V?$allocator at D@2@@http at beast@boost@@V? >> > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ >> > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ >> > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ >> @V?$basic_ >> > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_session@@PEBD3 at Z) >> > ) >> > >> > lld-link: error: undefined symbol: "public: class >> > nonstd::expected_lite::expected<void, class >> > jinja2::ErrorInfoTpl<char>> __cdecl jinja2::Template::LoadFromFile >> > (class std::basic_string<char, struct std::char_traits<char>, class >> > std::allocator<char>> const &)" >> > (?LoadFromFile at Template@jinja2@@QEAA?AV?$expected at XV?$ErrorInfoTpl at D >> @jinja2@@@expected_ >> > lite at nonstd@@AEBV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D >> @2@@std@@@Z) >> > >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ >> > _cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > boost::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)" >> > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ >> @V?$allocator at D@2@@http at beast@boost@@V? >> > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ >> > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ >> > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ >> @V?$basic_ >> > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_session@@PEBD3 at Z) >> > ) >> > >> > lld-link: error: undefined symbol: "public: class >> > std::basic_string<char, struct std::char_traits<char>, class >> > std::allocator<char>> __cdecl jinja2::Template::RenderAsString(class >> > std::unordered_map<class std::basic_string<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > jinja2::Value, struct std::hash<class std::basic_string<char, struct >> > std::char_traits<char>, class std::allocator<char>>>, struct >> > std::equal_to<class std::basic_string<char, struct >> > std::char_traits<char>, class std::allocator<char>>>, class >> > std::allocator<struct std::pair<class std::basic_string<char, struct >> > std::char_traits<char>, class std::allocator<char>> const, class >> > jinja2::Value>>> const &)" >> > (?RenderAsString at Template@jinja2@@QEAA?AV?$basic_string at DU >> ?$char_traits at D@std@@V? >> > $allocator at D@2@@std@@AEBV?$unordered_map at V?$basic_string at DU >> ?$char_traits at D@std@@V? >> > $allocator at D@2@@std@@VValue at jinja2@@U?$hash at V?$basic_string at DU >> ?$char_traits at D@std@@V? >> > $allocator at D@2@@std@@@2 at U?$equal_to at V?$basic_string at DU?$char_traits at D >> @std@@V? >> > $allocator at D@2@@std@@@2 at V?$allocator at U?$pair@$$CBV?$basic_string at DU >> ?$char_ >> > traits at D@std@@V?$allocator at D@2@@std@@VValue at jinja2@@@std@@@2@@4@@Z) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ >> > _cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > boost::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)" >> > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ >> @V?$allocator at D@2@@http at beast@boost@@V? >> > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ >> > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ >> > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ >> @V?$basic_ >> > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_session@@PEBD3 at Z) >> > ) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ >> > _cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > boost::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)" >> > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ >> @V?$allocator at D@2@@http at beast@boost@@V? >> > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ >> > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ >> > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ >> @V?$basic_ >> > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_session@@PEBD3 at Z) >> > ) >> > >> > lld-link: error: undefined symbol: "public: __cdecl >> > jinja2::Template::~Template(void)" (??1Template at jinja2@@QEAA at XZ) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ >> > _cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > boost::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)" >> > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ >> @V?$allocator at D@2@@http at beast@boost@@V? >> > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ >> > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ >> > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ >> @V?$basic_ >> > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_session@@PEBD3 at Z) >> > ) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("int >> > `void __cdecl handle_request<struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > std::allocator<char>, struct server_session::send_lambda &>(class >> > boost::basic_string_view<char, struct std::char_traits<char>>, struct >> > basic_string_view<char, struct >> > std::char_traits<char>>::beast::http::message<1, struct >> > boost::beast::http::basic_string_body<char, struct >> > std::char_traits<char>, class std::allocator<char>>, class >> > boost::beast::http::basic_fields<class std::allocator<char>>> &&, >> > struct server_session::send_lambda &, char const *, char const *)':: >> > `1'::dtor$114" >> > (?dtor$114@?0???$handle_request at U?$basic_string_body at DU?$char_traits at D >> @std@@V? >> > $allocator at D@2@@http at beast@boost@@V?$allocator at D@std@ >> @AEAUsend_lambda at server_ >> > session@@@@YAXV?$basic_string_view at DU?$char_traits at D@std@@@boost@ >> @$$QEAU? >> > $message@$00U?$basic_string_body at DU?$char_traits at D@std@@V?$allocator at D >> @2@@http at beast@boost@@V? >> > $basic_fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda >> @server_ >> > session@@PEBD3 at Z@4HA)) >> > >> > lld-link: warning: >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally >> > defined symbol imported: _CxxThrowException (defined in >> > libvcruntime.lib(throw.obj)) [LNK4217] >> > lld-link: error: undefined symbol: "class >> > boost::system::error_category const & __cdecl >> > boost::system::detail::system_category_ncx(void)" >> > (?system_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class >> > boost::system::error_category const & __cdecl >> > boost::system::system_category(void)" >> > (?system_category at system@boost@@YAAEBVerror_category at 12@XZ)) >> > >> > lld-link: warning: >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally >> > defined symbol imported: __RTDynamicCast (defined in libvcruntime.lib >> > (rtti.obj)) [LNK4217] >> > lld-link: error: undefined symbol: "class >> > boost::system::error_category const & __cdecl >> > boost::system::detail::generic_category_ncx(void)" >> > (?generic_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) >> > >> >>>> referenced by >> > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class >> > boost::system::error_category const & __cdecl >> > boost::system::generic_category(void)" >> > (?generic_category at system@boost@@YAAEBVerror_category at 12@XZ)) >> > clang++: error: linker command failed with exit code 1 (use -v to see >> > invocation) >> > " >> > >> > >> > * GitHub - DragonOsman/currency_converter: Application for Computer >> > Science course >> > Google Maps + Currency Converter Web Application. Application for >> > Computer Science course. This is a currency converter web >> > application with the frontend and a backend. >> > github.com >> > >> > * >> > >> > >> > _______________________________________________ >> > LLVM Developers mailing list >> > llvm-dev at lists.llvm.org >> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/05427b68/attachment.html>
Zachary Turner via llvm-dev
2018-Dec-12 16:02 UTC
[llvm-dev] Using LLD to link against third-party libraries? How?
Do you have a specific reason for enabling libcxx and libcxxabi? Because I would strongly suggest disabling them otherwise On Wed, Dec 12, 2018 at 7:47 AM Osman Zakir <osmanzakir90 at hotmail.com> wrote:> I was asking about zlib because CMake couldn't find zlib. There was no > error in the configuration, but knowing how to set the path to zlib would > still be nice. > > I enabled clang, lld, lldb, libcxx and libcxxabi when configuring the > build with CMake. What projects should I build aside from > ALL_BUILD.vcxproj and INSTALL.vcxproj to make sure I get the libcxx and > libcxxabi projects built as well, along with lld, lldb and clang? > > I didn't know about the bootstrapping Clang with itself bit, so I didn't > do that. > ------------------------------ > *From:* Zachary Turner <zturner at google.com> > *Sent:* Wednesday, December 12, 2018 8:40 PM > *To:* Osman Zakir > *Cc:* llvm-dev at lists.llvm.org > > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > > If you want to bootstrap clang and lld using itself, then you should pass > -DCMAKE_C_COMPILER=path/to/clang-cl.exe > -DCMAKE_CXX_COMPILER=path/to/clang-cl.exe > -DCMAKE_LINKER=path/to/lld-link.exe. > > Note the clang-cl.exe. ***Not*** clang.exe or clang++.exe. > > On Wed, Dec 12, 2018 at 7:37 AM Zachary Turner <zturner at google.com> wrote: > > You shouldn't need zlib to build. I think we discussed in a previous > thread that the only components you should need to complete a build are > Microsoft Visual Studio, git, and CMake. > > On Wed, Dec 12, 2018 at 7:14 AM Osman Zakir via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > How can I tell CMake during the configuration step where to find my zlib > installation? > ------------------------------ > *From:* blubee blubeeme <gurenchan at gmail.com> > *Sent:* Wednesday, December 12, 2018 7:31 PM > > *To:* Osman Zakir > *Cc:* llvm-dev > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > I would agree with the next email from Brian Cain > > If you do not have specific reason to want to use llvm lld try to use your > system provided c++ linker. > > Bootstrapping the llvm c++ c++abi can be troublesome on Unix like > platforms and I have no experience doing anything like that on windows. > > If you already have a c++ toochain and still want to attempt this then > you'll need to svn checkout or git clone a version of the llvm toolchain > and build it with your native toolchain then switch to using clang and lld. > > if you do not have a native c++ toolchain; let's cross that bridge only if > you need to. > > A complete LLVM toolchain includes > llvm > clang > clang-extra-tools > lld > lldb > polly > compiler-rt > openmp > libcxx > libcxx-abi > testsuite > There's "Getting Started Quickly (A Summary" : > https://llvm.org/docs/GettingStarted.html > > With steps to build a complete toolchain. Compilation could take a long > time. > > It would be simpler to use your native c++ and linker unless they do not > provide c++17 in which case the above link can get you started. > > Best > > On Wed, Dec 12, 2018 at 8:57 PM Osman Zakir <osmanzakir90 at hotmail.com> > wrote: > > So how do I get it to build libcxx and libcxxabi? I got it from the mono > repo and enabled lld, clang, libcxx and libcxxabi. But I built the two > main CMake targets only--all_build and install. What else do I have to > do? Please let me know. > ------------------------------ > *From:* Zachary Turner <zturner at google.com> > *Sent:* Wednesday, December 12, 2018 11:10 AM > *To:* blubee blubeeme > *Cc:* Osman Zakir; David Greene; llvm-dev at lists.llvm.org > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > > I see you’re using lld-link, so we’re talking about Windows here. > > Have you gotten it working with the Microsoft linker? Because if so, just > replace link.exe with lld-link.exe and it will work. > > Btw, it’s a bit odd to use clang++ on Windows. The recommended workflow is > to use clang-cl. It’s possible to use clang++, but you’re just setting > yourself up for more difficulty > On Tue, Dec 11, 2018 at 7:23 PM blubee blubeeme via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > I couldn't get it to build libcxx... > You need c++ and c++abi to compile c++ code. > > > On Wed, Dec 12, 2018, 07:01 Osman Zakir via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > LLVM on a Developer Command Prompt. The ones I want to fix first are the > ones from Boost and Jinja2Cpp. I saw some from those as well. > > If there any standard library ones missing, could it be because I couldn't > get it to build libcxx? I did try to include that, but it seems to be > missing. What should I do? > ------------------------------ > *From:* David Greene <dag at cray.com> > *Sent:* Wednesday, December 12, 2018 3:30 AM > *To:* Osman Zakir > *Cc:* blubee blubeeme; llvm-dev at lists.llvm.org > > *Subject:* Re: [llvm-dev] Using LLD to link against third-party > libraries? How? > > Are you linking with a C++ compiler? A lot of those missing symbols > look like they come from the C++ standard library. > > -David > > Osman Zakir via llvm-dev <llvm-dev at lists.llvm.org> writes: > > > @blubee blubeeme So what do you think? Got any ideas? > > ---------------------------------------------------------------------- > > From: Osman Zakir <osmanzakir90 at hotmail.com> > > Sent: Wednesday, December 12, 2018 1:43 AM > > To: llvm-dev at lists.llvm.org > > Subject: Re: [llvm-dev] Using LLD to link against third-party > > libraries? How? > > In my code here https://github.com/DragonOsman/currency_converter , I > > used C++17 and managed to get it to work (though I'm only using > > std::map::insert_or_assign() from C++17). And I'm using Windows, so I > > shouldn't use LDFLAGS or CXXFLAGS as environment variables. I'll use > > them directly on the compiler command line instead. The libraries I > > need to link against are > > C:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib and > > C:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib. > > > > I tried to build it with this flag: > > " > > clang++ -std=c++17 -Wall -pedantic - > > D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING - > > Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD - > > D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING - > > D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32 - > > D_WIN32_WINDOWS -D_NDEBUG -fexceptions - > > IC:/Jinja2Cpp/install_x64/include -IC:/json/single_include - > > IC:/boost_1_68_0 - > > LC:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib - > > LC:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib > > currency_converter.cpp -o currency_converter.exe > > " > > And I got these warnings and errors from LLD: > > > > " > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: __std_terminate (defined in libvcruntime.lib > > (ehhelpers.obj)) [LNK4217] > > lld-link: error: undefined symbol: "public: __cdecl > > jinja2::Template::Template(class jinja2::TemplateEnv *)" > > (??0Template at jinja2@@QEAA at PEAVTemplateEnv@1@@Z) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: class > > nonstd::expected_lite::expected<void, class > > jinja2::ErrorInfoTpl<char>> __cdecl jinja2::Template::LoadFromFile > > (class std::basic_string<char, struct std::char_traits<char>, class > > std::allocator<char>> const &)" > > (?LoadFromFile at Template@jinja2@@QEAA?AV?$expected at XV?$ErrorInfoTpl at D > @jinja2@@@expected_ > > lite at nonstd@@AEBV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@ > @std@@@Z) > > > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: class > > std::basic_string<char, struct std::char_traits<char>, class > > std::allocator<char>> __cdecl jinja2::Template::RenderAsString(class > > std::unordered_map<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > jinja2::Value, struct std::hash<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>>, struct > > std::equal_to<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>>>, class > > std::allocator<struct std::pair<class std::basic_string<char, struct > > std::char_traits<char>, class std::allocator<char>> const, class > > jinja2::Value>>> const &)" > > (?RenderAsString at Template@jinja2@@QEAA?AV?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@AEBV?$unordered_map at V?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@VValue at jinja2@@U?$hash at V?$basic_string at DU > ?$char_traits at D@std@@V? > > $allocator at D@2@@std@@@2 at U?$equal_to at V?$basic_string at DU?$char_traits at D > @std@@V? > > $allocator at D@2@@std@@@2 at V?$allocator at U?$pair@$$CBV?$basic_string at DU > ?$char_ > > traits at D@std@@V?$allocator at D@2@@std@@VValue at jinja2@@@std@@@2@@4@@Z) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > > > > lld-link: error: undefined symbol: "public: __cdecl > > jinja2::Template::~Template(void)" (??1Template at jinja2@@QEAA at XZ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _ > > _cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > boost::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)" > > (??$handle_request at U?$basic_string_body at DU?$char_traits at D@std@ > @V?$allocator at D@2@@http at beast@boost@@V? > > $allocator at D@std@@AEAUsend_lambda at server_session@@@@YAXV?$basic_string_ > > view at DU?$char_traits at D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_ > > body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at beast@boost@ > @V?$basic_ > > fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_session@@PEBD3 at Z) > > ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("int > > `void __cdecl handle_request<struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > std::allocator<char>, struct server_session::send_lambda &>(class > > boost::basic_string_view<char, struct std::char_traits<char>>, struct > > basic_string_view<char, struct > > std::char_traits<char>>::beast::http::message<1, struct > > boost::beast::http::basic_string_body<char, struct > > std::char_traits<char>, class std::allocator<char>>, class > > boost::beast::http::basic_fields<class std::allocator<char>>> &&, > > struct server_session::send_lambda &, char const *, char const *)':: > > `1'::dtor$114" > > (?dtor$114@?0???$handle_request at U?$basic_string_body at DU?$char_traits at D > @std@@V? > > $allocator at D@2@@http at beast@boost@@V?$allocator at D@std@ > @AEAUsend_lambda at server_ > > session@@@@YAXV?$basic_string_view at DU?$char_traits at D@std@@@boost@ > @$$QEAU? > > $message@$00U?$basic_string_body at DU?$char_traits at D@std@@V?$allocator at D > @2@@http at beast@boost@@V? > > $basic_fields at V?$allocator at D@std@@@234@@http at beast@1 at AEAUsend_lambda > @server_ > > session@@PEBD3 at Z@4HA)) > > > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: _CxxThrowException (defined in > > libvcruntime.lib(throw.obj)) [LNK4217] > > lld-link: error: undefined symbol: "class > > boost::system::error_category const & __cdecl > > boost::system::detail::system_category_ncx(void)" > > (?system_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class > > boost::system::error_category const & __cdecl > > boost::system::system_category(void)" > > (?system_category at system@boost@@YAAEBVerror_category at 12@XZ)) > > > > lld-link: warning: > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally > > defined symbol imported: __RTDynamicCast (defined in libvcruntime.lib > > (rtti.obj)) [LNK4217] > > lld-link: error: undefined symbol: "class > > boost::system::error_category const & __cdecl > > boost::system::detail::generic_category_ncx(void)" > > (?generic_category_ncx at detail@system at boost@@YAAEBVerror_category at 23@XZ) > > > >>>> referenced by > > C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class > > boost::system::error_category const & __cdecl > > boost::system::generic_category(void)" > > (?generic_category at system@boost@@YAAEBVerror_category at 12@XZ)) > > clang++: error: linker command failed with exit code 1 (use -v to see > > invocation) > > " > > > > > > * GitHub - DragonOsman/currency_converter: Application for Computer > > Science course > > Google Maps + Currency Converter Web Application. Application for > > Computer Science course. This is a currency converter web > > application with the frontend and a backend. > > github.com > > > > * > > > > > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/0500bd59/attachment.html>
Osman Zakir via llvm-dev
2018-Dec-12 16:16 UTC
[llvm-dev] Using LLD to link against third-party libraries? How?
I need them so I can build stuff using clang or clang-cl with its C++ standard
libraries. To make sure that lld-link won't give errors about missing
symbols from any standard libraries.
By the way, you wouldn't happen to know how to use link.exe, would you? I
might need some help on that to understand how to use lld-link.exe.
________________________________
From: Zachary Turner <zturner at google.com>
Sent: Wednesday, December 12, 2018 9:02 PM
To: Osman Zakir; llvm-dev
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
Do you have a specific reason for enabling libcxx and libcxxabi? Because I
would strongly suggest disabling them otherwise
On Wed, Dec 12, 2018 at 7:47 AM Osman Zakir <osmanzakir90 at
hotmail.com<mailto:osmanzakir90 at hotmail.com>> wrote:
I was asking about zlib because CMake couldn't find zlib. There was no
error in the configuration, but knowing how to set the path to zlib would still
be nice.
I enabled clang, lld, lldb, libcxx and libcxxabi when configuring the build with
CMake. What projects should I build aside from ALL_BUILD.vcxproj and
INSTALL.vcxproj to make sure I get the libcxx and libcxxabi projects built as
well, along with lld, lldb and clang?
I didn't know about the bootstrapping Clang with itself bit, so I didn't
do that.
________________________________
From: Zachary Turner <zturner at google.com<mailto:zturner at
google.com>>
Sent: Wednesday, December 12, 2018 8:40 PM
To: Osman Zakir
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
If you want to bootstrap clang and lld using itself, then you should pass
-DCMAKE_C_COMPILER=path/to/clang-cl.exe
-DCMAKE_CXX_COMPILER=path/to/clang-cl.exe -DCMAKE_LINKER=path/to/lld-link.exe.
Note the clang-cl.exe. ***Not*** clang.exe or clang++.exe.
On Wed, Dec 12, 2018 at 7:37 AM Zachary Turner <zturner at
google.com<mailto:zturner at google.com>> wrote:
You shouldn't need zlib to build. I think we discussed in a previous thread
that the only components you should need to complete a build are Microsoft
Visual Studio, git, and CMake.
On Wed, Dec 12, 2018 at 7:14 AM Osman Zakir via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
How can I tell CMake during the configuration step where to find my zlib
installation?
________________________________
From: blubee blubeeme <gurenchan at gmail.com<mailto:gurenchan at
gmail.com>>
Sent: Wednesday, December 12, 2018 7:31 PM
To: Osman Zakir
Cc: llvm-dev
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
I would agree with the next email from
Brian Cain
If you do not have specific reason to want to use llvm lld try to use your
system provided c++ linker.
Bootstrapping the llvm c++ c++abi can be troublesome on Unix like platforms and
I have no experience doing anything like that on windows.
If you already have a c++ toochain and still want to attempt this then
you'll need to svn checkout or git clone a version of the llvm toolchain and
build it with your native toolchain then switch to using clang and lld.
if you do not have a native c++ toolchain; let's cross that bridge only if
you need to.
A complete LLVM toolchain includes
llvm
clang
clang-extra-tools
lld
lldb
polly
compiler-rt
openmp
libcxx
libcxx-abi
testsuite
There's "Getting Started Quickly (A Summary" :
https://llvm.org/docs/GettingStarted.html
With steps to build a complete toolchain. Compilation could take a long time.
It would be simpler to use your native c++ and linker unless they do not provide
c++17 in which case the above link can get you started.
Best
On Wed, Dec 12, 2018 at 8:57 PM Osman Zakir <osmanzakir90 at
hotmail.com<mailto:osmanzakir90 at hotmail.com>> wrote:
So how do I get it to build libcxx and libcxxabi? I got it from the mono repo
and enabled lld, clang, libcxx and libcxxabi. But I built the two main CMake
targets only--all_build and install. What else do I have to do? Please let me
know.
________________________________
From: Zachary Turner <zturner at google.com<mailto:zturner at
google.com>>
Sent: Wednesday, December 12, 2018 11:10 AM
To: blubee blubeeme
Cc: Osman Zakir; David Greene; llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
I see you’re using lld-link, so we’re talking about Windows here.
Have you gotten it working with the Microsoft linker? Because if so, just
replace link.exe with lld-link.exe and it will work.
Btw, it’s a bit odd to use clang++ on Windows. The recommended workflow is to
use clang-cl. It’s possible to use clang++, but you’re just setting yourself up
for more difficulty
On Tue, Dec 11, 2018 at 7:23 PM blubee blubeeme via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
I couldn't get it to build libcxx...
You need c++ and c++abi to compile c++ code.
On Wed, Dec 12, 2018, 07:01 Osman Zakir via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
LLVM on a Developer Command Prompt. The ones I want to fix first are the ones
from Boost and Jinja2Cpp. I saw some from those as well.
If there any standard library ones missing, could it be because I couldn't
get it to build libcxx? I did try to include that, but it seems to be missing.
What should I do?
________________________________
From: David Greene <dag at cray.com<mailto:dag at cray.com>>
Sent: Wednesday, December 12, 2018 3:30 AM
To: Osman Zakir
Cc: blubee blubeeme; llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>
Subject: Re: [llvm-dev] Using LLD to link against third-party libraries? How?
Are you linking with a C++ compiler? A lot of those missing symbols
look like they come from the C++ standard library.
-David
Osman Zakir via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at
lists.llvm.org>> writes:
> @blubee blubeeme So what do you think? Got any ideas?
> ----------------------------------------------------------------------
> From: Osman Zakir <osmanzakir90 at hotmail.com<mailto:osmanzakir90 at
hotmail.com>>
> Sent: Wednesday, December 12, 2018 1:43 AM
> To: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
> Subject: Re: [llvm-dev] Using LLD to link against third-party
> libraries? How?
> In my code here https://github.com/DragonOsman/currency_converter , I
> used C++17 and managed to get it to work (though I'm only using
> std::map::insert_or_assign() from C++17). And I'm using Windows, so I
> shouldn't use LDFLAGS or CXXFLAGS as environment variables. I'll
use
> them directly on the compiler command line instead. The libraries I
> need to link against are
> C:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib and
> C:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib.
>
> I tried to build it with this flag:
> "
> clang++ -std=c++17 -Wall -pedantic -
> D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING -
> Dvariant_CONFIG_SELECT_VARIANT=variant_VARIANT_NONSTD -
> D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING -
> D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_WIN32 -
> D_WIN32_WINDOWS -D_NDEBUG -fexceptions -
> IC:/Jinja2Cpp/install_x64/include -IC:/json/single_include -
> IC:/boost_1_68_0 -
> LC:/boost_1_68_0/stage/lib/libboost_system-vc141-mt-x64-1_68.lib -
> LC:/Jinja2Cpp/install_x64/lib/static/jinja2cpp.lib
> currency_converter.cpp -o currency_converter.exe
> "
> And I got these warnings and errors from LLD:
>
> "
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: __std_terminate (defined in libvcruntime.lib
> (ehhelpers.obj)) [LNK4217]
> lld-link: error: undefined symbol: "public: __cdecl
> jinja2::Template::Template(class jinja2::TemplateEnv *)"
> (??0Template at jinja2@@QEAA at PEAVTemplateEnv@1@@Z)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: class
> nonstd::expected_lite::expected<void, class
> jinja2::ErrorInfoTpl<char>> __cdecl jinja2::Template::LoadFromFile
> (class std::basic_string<char, struct std::char_traits<char>,
class
> std::allocator<char>> const &)"
> (?LoadFromFile at Template@jinja2@@QEAA?AV?$expected at XV?$ErrorInfoTpl at
D@jinja2@@@expected_
> lite at nonstd@@AEBV?$basic_string at DU?$char_traits at
D@std@@V?$allocator at D@2@@std@@@Z)
>
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: class
> std::basic_string<char, struct std::char_traits<char>, class
> std::allocator<char>> __cdecl
jinja2::Template::RenderAsString(class
> std::unordered_map<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> jinja2::Value, struct std::hash<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>>,
struct
> std::equal_to<class std::basic_string<char, struct
> std::char_traits<char>, class std::allocator<char>>>,
class
> std::allocator<struct std::pair<class std::basic_string<char,
struct
> std::char_traits<char>, class std::allocator<char>> const,
class
> jinja2::Value>>> const &)"
> (?RenderAsString at Template@jinja2@@QEAA?AV?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@AEBV?$unordered_map at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@VValue at jinja2@@U?$hash at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@@2 at U?$equal_to at V?$basic_string at
DU?$char_traits at D@std@@V?
> $allocator at D@2@@std@@@2 at V?$allocator at U?$pair@$$CBV?$basic_string
at DU?$char_
> traits at D@std@@V?$allocator at D@2@@std@@VValue at
jinja2@@@std@@@2@@4@@Z)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>
> lld-link: error: undefined symbol: "public: __cdecl
> jinja2::Template::~Template(void)" (??1Template at jinja2@@QEAA at
XZ)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("void _
> _cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> boost::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const *)"
> (??$handle_request at U?$basic_string_body at DU?$char_traits at
D@std@@V?$allocator at D@2@@http at beast@boost@@V?
> $allocator at D@std@@AEAUsend_lambda at
server_session@@@@YAXV?$basic_string_
> view at DU?$char_traits at
D@std@@@boost@@$$QEAU?$message@$00U?$basic_string_
> body at DU?$char_traits at D@std@@V?$allocator at D@2@@http at
beast@boost@@V?$basic_
> fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_session@@PEBD3 at Z)
> )
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("int
> `void __cdecl handle_request<struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> std::allocator<char>, struct server_session::send_lambda
&>(class
> boost::basic_string_view<char, struct std::char_traits<char>>,
struct
> basic_string_view<char, struct
> std::char_traits<char>>::beast::http::message<1, struct
> boost::beast::http::basic_string_body<char, struct
> std::char_traits<char>, class std::allocator<char>>, class
> boost::beast::http::basic_fields<class
std::allocator<char>>> &&,
> struct server_session::send_lambda &, char const *, char const
*)'::
> `1'::dtor$114"
> (?dtor$114@?0???$handle_request at U?$basic_string_body at DU?$char_traits
at D@std@@V?
> $allocator at D@2@@http at beast@boost@@V?$allocator at
D@std@@AEAUsend_lambda at server_
> session@@@@YAXV?$basic_string_view at DU?$char_traits at
D@std@@@boost@@$$QEAU?
> $message@$00U?$basic_string_body at DU?$char_traits at D@std@@V?$allocator
at D@2@@http at beast@boost@@V?
> $basic_fields at V?$allocator at D@std@@@234@@http at beast@1 at
AEAUsend_lambda@server_
> session@@PEBD3 at Z@4HA))
>
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: _CxxThrowException (defined in
> libvcruntime.lib(throw.obj)) [LNK4217]
> lld-link: error: undefined symbol: "class
> boost::system::error_category const & __cdecl
> boost::system::detail::system_category_ncx(void)"
> (?system_category_ncx at detail@system at boost@@YAAEBVerror_category at
23@XZ)
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class
> boost::system::error_category const & __cdecl
> boost::system::system_category(void)"
> (?system_category at system@boost@@YAAEBVerror_category at 12@XZ))
>
> lld-link: warning:
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o: locally
> defined symbol imported: __RTDynamicCast (defined in libvcruntime.lib
> (rtti.obj)) [LNK4217]
> lld-link: error: undefined symbol: "class
> boost::system::error_category const & __cdecl
> boost::system::detail::generic_category_ncx(void)"
> (?generic_category_ncx at detail@system at boost@@YAAEBVerror_category at
23@XZ)
>
>>>> referenced by
> C:\Users\Osman\AppData\Local\Temp\currency_converter-264ae1.o:("class
> boost::system::error_category const & __cdecl
> boost::system::generic_category(void)"
> (?generic_category at system@boost@@YAAEBVerror_category at 12@XZ))
> clang++: error: linker command failed with exit code 1 (use -v to see
> invocation)
> "
>
>
> * GitHub - DragonOsman/currency_converter: Application for Computer
> Science course
> Google Maps + Currency Converter Web Application. Application for
> Computer Science course. This is a currency converter web
> application with the frontend and a backend.
> github.com<http://github.com>
>
> *
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/4c50a13f/attachment-0001.html>
Seemingly Similar Threads
- Using LLD to link against third-party libraries? How?
- Using LLD to link against third-party libraries? How?
- Using LLD to link against third-party libraries? How?
- Using LLD to link against third-party libraries? How?
- Using LLD to link against third-party libraries? How?