unix中的Boost静态链接

unix中的Boost静态链接,boost,static-linking,Boost,Static Linking,我正在使用Unix、GCC中的Boost库。我阅读了以下主题:并将-static添加到我的Makefile中。然而,这是行不通的 这是我的Makefile: all: nbbo nbbo: nbbo.o reader.o g++ -static -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -L/usr/lib -lboost_filesystem -lboost_serialization -lboost_iostream

我正在使用Unix、GCC中的Boost库。我阅读了以下主题:并将-static添加到我的Makefile中。然而,这是行不通的

这是我的Makefile:

all: nbbo

nbbo: nbbo.o reader.o
    g++ -static -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -L/usr/lib -lboost_filesystem -lboost_serialization -lboost_iostreams -lz -I /usr/include/boost -o nbbo nbbo.o reader.o

nbbo.o: nbbo.cpp
    g++ -static -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -I /usr/include/boost -c -o nbbo.o nbbo.cpp

reader.o: reader.cc reader.h
    g++ -static -O3 -ffast-math -funroll-loops -ansi -pedantic-errors -I /usr/include/boost -c -o reader.o reader.cc

clean:
    rm *.o
下面是错误消息:

nbbo.o: In function `__tcf_10':
nbbo.cpp:(.text+0x3d9): undefined reference to `boost::serialization::extended_type_info::key_unregister() const'
nbbo.cpp:(.text+0x3e3): undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()'
nbbo.cpp:(.text+0x3fb): undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()'
etc
您正在使用哪个“UNIX”?在linux上使用-static标志应该可以正常工作。但不是在OSX上。在OSX上,为了静态链接,您必须删除静态标志并给出库的完整路径。我不知道这在其他“Unix”上是如何工作的

例如

g++ ..... /path/to/your/lib.a ... -o ..