Package: libboost-program-options1.53-dev Version: 1.53.0-6+exp3ubuntu8 I've tried compiling a simple test program (attached) using clang-3.4 and libc++. Link failure as follows:
$ clang++ -stdlib=libc++ test.cpp -lboost_program_options /tmp/test-KhY5IK.o: In function `main': test.cpp:(.text+0xbd): undefined reference to `boost::program_options::options_description::options_description(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int, unsigned int)' clang: error: linker command failed with exit code 1 (use -v to see invocation) The same file links just fine if I use libstdc++: clang++ -stdlib=libstdc++ test.cpp -lboost_program_options I have attached a verbose build log obtained used clang++ -stdlib=libc++ test.cpp -lboost_program_options -v Thanks, Alex
#include <boost/program_options.hpp> namespace po = boost::program_options; int main() { po::options_description *test = new po::options_description("Test"); return 0; }
Ubuntu clang version 3.4-1ubuntu1 (trunk) (based on LLVM 3.4) Target: x86_64-pc-linux-gnu Thread model: posix "/usr/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name test.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.23.52.20130727 -v -resource-dir /usr/bin/../lib/clang/3.4 -internal-isystem /usr/include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.4/include -internal-isystem /usr/include/clang/3.4/include/ -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/eenava/Simulations/inf-qw -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fobjc-default-synthesize-properties -fcxx-exceptions -fexceptions -fdiagnostics-show-option -backend-option -vectorize-loops -o /tmp/test-THFuv7.o -x c++ test.cpp clang -cc1 version 3.4 based upon LLVM 3.4 default target x86_64-pc-linux-gnu ignoring nonexistent directory "/usr/bin/../lib/clang/3.4/include" ignoring duplicate directory "/usr/include/x86_64-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/v1 /usr/local/include /usr/include/clang/3.4/include /usr/include/x86_64-linux-gnu /usr/include End of search list. "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/x86_64-linux-gnu/../../lib64 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/lib -L/usr/lib /tmp/test-THFuv7.o -lboost_program_options -lc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o /tmp/test-THFuv7.o: In function `main': test.cpp:(.text+0xbd): undefined reference to `boost::program_options::options_description::options_description(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int, unsigned int)' clang: error: linker command failed with exit code 1 (use -v to see invocation)