[cfe-dev] Building Boost Serializer library with Clang, no symbols exported
Anton Korobeynikov
anton at korobeynikov.info
Sun Sep 8 00:59:28 PDT 2013
Hello
Unfortunately, dll* stuff for classes is still WIP in clang. So,
compile the stuff as static libraries...
On Sun, Sep 8, 2013 at 8:09 AM, Kim <soldoutseashell at gmail.com> wrote:
> Hey guys,
>
> I'm trying to compile Boost Serializer library using Clang on windows
> targeting mingw and I get a lot of warnings like this:
>
> In file included from
> F:\boost_1_54_0\boost/serialization/base_object.hpp:39:
> F:\boost_1_54_0\boost/serialization/void_cast_fwd.hpp:29:1: warning:
> dllexport attribute ignored [-Wignored-attributes]
> BOOST_DLLEXPORT
> ^
> F:\boost_1_54_0\boost/serialization/force_include.hpp:37:43: note: expanded
> from macro 'BOOST_DLLEXPORT'
> # define BOOST_DLLEXPORT __declspec(dllexport)
> ^
> <built-in>:158:38: note: expanded from here
> #define __declspec(a) __attribute__((a))
> ^
>
> And none of the symbols are actually being exported so when I try to link
> the resulting library I get a lot of symbol not found errors. Clang/LLVM was
> built with mingw and I'm pointing bjam to the mingw STL headers. Here are
> the full build logs for building the static and dynamic versions of the
> library.
> https://dl.dropboxusercontent.com/u/1735585/buildlogstatic.txt
> https://dl.dropboxusercontent.com/u/1735585/buildlogdynamic.txt
>
> Bjam is calling clang like this:
>
> clang-linux.compile.c++.without-pth
> bin.v2\libs\serialization\build\clang-linux-3.4\debug\link-static\threading-multi\binary_iarchive.obj
> clang version 3.4 (trunk)
> Target: i686-pc-mingw32
> Thread model: posix
> Selected GCC installation:
> "F:\LLVM-fresh\release\Release+Asserts\bin\clang++.exe" -cc1 -triple
> i686-pc-mingw32 -S -disable-free -main-file-name binary_iarchive.cpp
> -mrelocation-model static -mdisable-fp-elim -fmath-errno
> -mconstructor-aliases -target-cpu pentium4 -target-linker-version 2.23.2 -v
> -v -g -coverage-file
> "C:\\Users\\Kim\\AppData\\Local\\Temp\\binary_iarchive-e303b0.s"
> -nostdsysteminc -nobuiltininc -resource-dir
> "F:\\LLVM-fresh\\release\\Release+Asserts\\bin\\..\\lib\\clang\\3.4" -D
> BOOST_ALL_NO_LIB=1 -I "F:\\\\boost_1_54_0" -I "C:\\MinGW\\mingw32\\include"
> -I "C:\\MinGW\\lib\\gcc\\mingw32\\4.8.1\\include\\c++\\mingw32" -I
> "C:\\\\mingw\\\\lib\\\\gcc\\\\mingw32\\\\4.8.1\\\\include" -I
> "C:\\\\MinGW\\\\lib\\\\gcc\\\\mingw32\\\\4.8.1\\\\include\\\\c++\\\\mingw32"
> -I "C:\\\\MinGW\\\\lib\\\\gcc\\\\mingw32\\\\4.8.1\\\\include\\\\c++" -I
> "C:\\\\MinGW\\\\lib\\\\gcc\\\\mingw32\\\\4.8.1\\\\include\\\\c++\\\\tr1" -I
> . -O0 -Wall -std=c++11 -fdeprecated-macro -fno-dwarf-directory-asm
> -fdebug-compilation-dir "F:\\boost_1_54_0" -ferror-limit 19 -fmessage-length
> 0 -mstackrealign -fno-use-cxa-atexit -fno-inline -fobjc-runtime=gcc
> -fobjc-default-synthesize-properties -fcxx-exceptions -fexceptions
> -fdiagnostics-show-option -vectorize-slp -o
> "C:\\Users\\Kim\\AppData\\Local\\Temp\\binary_iarchive-e303b0.s" -x c++
> "libs\\serialization\\src\\binary_iarchive.cpp"
> clang -cc1 version 3.4 based upon LLVM 3.4svn default target i686-pc-mingw32
> ignoring duplicate directory
> "C:\MinGW\lib\gcc\mingw32\4.8.1\include\c++\mingw32"
> ignoring duplicate directory "F:\boost_1_54_0"
> #include "..." search starts here:
> #include <...> search starts here:
> F:\boost_1_54_0
> C:\MinGW\mingw32\include
> C:\MinGW\lib\gcc\mingw32\4.8.1\include\c++\mingw32
> C:\\mingw\\lib\\gcc\\mingw32\\4.8.1\\include
> C:\\MinGW\\lib\\gcc\\mingw32\\4.8.1\\include\\c++
> C:\\MinGW\\lib\\gcc\\mingw32\\4.8.1\\include\\c++\\tr1
> End of search list.
> In file included from libs\serialization\src\binary_iarchive.cpp:14:
> In file included from F:\boost_1_54_0\boost/archive/binary_iarchive.hpp:20:
> In file included from
> F:\boost_1_54_0\boost/archive/binary_iarchive_impl.hpp:21:
> In file included from
> F:\boost_1_54_0\boost/archive/basic_binary_iprimitive.hpp:56:
> In file included from F:\boost_1_54_0\boost/serialization/array.hpp:19:
> In file included from F:\boost_1_54_0\boost/serialization/nvp.hpp:34:
> In file included from
> F:\boost_1_54_0\boost/serialization/base_object.hpp:39:
> F:\boost_1_54_0\boost/serialization/void_cast_fwd.hpp:29:1: warning:
> dllexport attribute ignored [-Wignored-attributes]
> BOOST_DLLEXPORT
> ^
> F:\boost_1_54_0\boost/serialization/force_include.hpp:37:43: note: expanded
> from macro 'BOOST_DLLEXPORT'
> # define BOOST_DLLEXPORT __declspec(dllexport)
> ^
> <built-in>:158:38: note: expanded from here
> #define __declspec(a) __attribute__((a))
> ^
> In file included from libs\serialization\src\binary_iarchive.cpp:14:
> In file included from F:\boost_1_54_0\boost/archive/binary_iarchive.hpp:20:
> In file included from
> F:\boost_1_54_0\boost/archive/binary_iarchive_impl.hpp:22:
> In file included from
> F:\boost_1_54_0\boost/archive/basic_binary_iarchive.hpp:31:
> In file included from
> F:\boost_1_54_0\boost/archive/detail/common_iarchive.hpp:23:
> In file included from
> F:\boost_1_54_0\boost/archive/detail/interface_iarchive.hpp:22:
> In file included from
> F:\boost_1_54_0\boost/archive/detail/iserializer.hpp:79:
> F:\boost_1_54_0\boost/serialization/void_cast.hpp:265:1: warning: dllexport
> attribute ignored [-Wignored-attributes]
> BOOST_DLLEXPORT
> ^
> F:\boost_1_54_0\boost/serialization/force_include.hpp:37:43: note: expanded
> from macro 'BOOST_DLLEXPORT'
> # define BOOST_DLLEXPORT __declspec(dllexport)
> ^
> <built-in>:158:38: note: expanded from here
> #define __declspec(a) __attribute__((a))
>
>
> I hope someone can tell me why this is happening and how it can be fixed.
> Thanks a lot for your time.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
More information about the cfe-dev
mailing list