我正在尝试在 Fedora 17 上安装 Boost.Log 并且已经安装了yum install boost-*
。所有相关教程和类似问题的答案都涉及将 lib/log 移动到 boost 源目录并执行 bootstrap.sh。find / -name '*bootstrap.sh' 2> /dev/null
我在我的系统 (did )中找不到 boost 源目录或 bootstrap.sh 文件。我能找到的只是/usr/share/boost-build/
里面有很多果酱文件。得出的结论是 yum 安装不包含源目录和 bootstrap.sh,我尝试手动构建它,但 Boost.Log 源文件包含 Windows 特定的头文件,我感到很困惑。任何人都可以对此有所了解吗?
问问题
979 次
2 回答
0
写了如下Makefile进行编译安装,其中不包含引用的文件windows.h
,相信是可以的:
SRCS= attribute_name.cpp attribute_set.cpp attribute_values_view.cpp \
code_conversion.cpp core.cpp \
default_filter_factory.cpp default_sink.cpp event.cpp \
exceptions.cpp filter_parser.cpp \
formatter_parser.cpp global_logger_storage.cpp init_from_settings.cpp \
init_from_stream.cpp light_rw_mutex.cpp named_scope.cpp \
once_block.cpp parser_utils.cpp process_id.cpp \
record_ostream.cpp severity_level.cpp syslog_backend.cpp \
text_file_backend.cpp text_ostream_backend.cpp thread_id.cpp \
threadsafe_queue.cpp thread_specific.cpp timer.cpp \
timestamp.cpp trivial.cpp
OBJS=$(SRCS:.cpp=.o)
CXXFLAGS=-std=c++11 -DBOOST_FILESYSTEM_VERSION=2
libboost_log.so: $(OBJS)
g++ -shared $^ -o $@ -lpthread -lboost_system -lboost_thread-mt -lrt -lboost_filesystem
%.o: %.cpp
g++ $(CXXFLAGS) -fPIC -c $^ -o $@
install:
cp libboost_log.so /usr/lib
clean:
rm *.o
于 2012-07-22T17:09:14.970 回答
0
事实证明,当前 Fedora 存储库的 yum boost-build 包中的主要构建工具称为“bjam”而不是“b2”(如最新文档所暗示的那样)。
因此,如果您找不到 b2,请使用 bjam。
于 2014-08-27T18:14:01.847 回答