使用 Boost.Log "error: target { simple_event_log.mc. } has no type" 构建 Boost
Building Boost with Boost.Log "error: target { simple_event_log.mc. } has no type"
我正在尝试构建Boost.Log(http://boost-log.sourceforge.net/libs/log/doc/html/index.html)。我将它添加到我的助推源中,并执行我通常的助推构建命令。
b2 --build-dir="D:boost1.51.0boost" toolset=gcc variant=release link=static threading=multi runtime-link=static --build-type=complete
但什么都没发生,我最终收到了这个:
D:/boost/1.51.0/src/tools/build/v2/buildgenerators.jam:1085: in ensure-type from module generators
error: target { simple_event_log.mc. } has no type
D:/boost/1.51.0/src/tools/build/v2/buildgenerators.jam:1319: in generators.construct from module generators
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1495: in construct from module object(typed-target)@491
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1298: in object(typed-target)@491.generate from module object(typed-target)@491
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:732: in generate-really from module object(main-target)@1871
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:704: in object(main-target)@1871.generate from module object(main-target)@1871
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:258: in object(project-target)@474.generate from module object(project-target)@474
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:848: in targets.generate-from-reference from module targets D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1217: in generate-dependencies from module object(install-target-class)@96
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1269: in object(install-target-class)@96.generate from module object(install-target-class)@96
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:732: in generate-really from module object(main-target)@930 D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:704: in object(main-target)@930.generate from module object(main-target)@930
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:848: in targets.generate-from-reference from module targets D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1217: in generate-dependencies from module object(top-level-target)@103
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1269: in alias-target-class.generate from module object(top-level-target)@103
D:/boost/1.51.0/srcboostcpp.jam:391: in build-multiple from module object(top-level-target)@103
D:/boost/1.51.0/srcboostcpp.jam:376: in object(top-level-target)@103.generate from module object(top-level-target)@103
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:732: in generate-really from module object(main-target)@934 D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:704: in object(main-target)@934.generate from module object(main-target)@934
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:848: in targets.generate-from-reference from module targets D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1217: in generate-dependencies from module object(top-level-target)@104
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:1269: in alias-target-class.generate from module object(top-level-target)@104
D:/boost/1.51.0/srcboostcpp.jam:391: in build-multiple from module object(top-level-target)@104
D:/boost/1.51.0/srcboostcpp.jam:376: in object(top-level-target)@104.generate from module object(top-level-target)@104
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:732: in generate-really from module object(main-target)@935 D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:704: in object(main-target)@935.generate from module object(main-target)@935
D:/boost/1.51.0/src/tools/build/v2/buildtargets.jam:258: in object(project-target)@42.generate from module object(project-target)@42
D:/boost/1.51.0/src/tools/build/v2build-system.jam:736: in load from module build-system
D:boost1.51.0srctoolsbuildv2/kernelmodules.jam:283: in import from module modules
D:boost1.51.0srctoolsbuildv2/kernel/bootstrap.jam:142: in boost-build from module
D:boost1.51.0srcboost-build.jam:17: in module scope from module
你能解释一下这意味着什么吗?或者我如何才能看到更多的错误信息?你是如何构建Boost.Log的?
问题的答案可以在这里找到:
其次,在某个时刻,库将需要一个消息编译器工具(mc.exe),在MinGW、Cygwin和MSVC Express中不可用版本你有两种选择来解决这个问题。如果是MinGW和Cygwin,您可以使用windmc.exe工具,该工具类似于原始的mc.exe。为了做到这一点,您必须进行修补Boost.Build文件(特别是tools/Build/v2/tools/mc.jam文件)。之后,您将能够将mccompiler=windmc选项指定为bjam以构建库。
这是补丁的链接。应用补丁并通过mc-compiler=windmc
应该可以解决问题。
注意:此外,如票证中的注释所示,您需要在toolsbuildv2toolsgcc.jam
中的import fortran ;
之后添加import mc ;
。
以下是应用补丁后的mc.jam文件的外观(请确保您的文件如下所示):
import common ;
import generators ;
import feature : feature get-values ;
import toolset : flags ;
import type ;
import rc ;
feature.feature mc-compiler : mc windmc : propagated ;
feature.set-default mc-compiler : mc ;
rule init ( )
{
}
type.register MC : mc ;
# Command line options
feature mc-input-encoding : ansi unicode : free ;
feature mc-output-encoding : unicode ansi : free ;
feature mc-set-customer-bit : no yes : free ;
flags mc.compile MCFLAGS <mc-input-encoding>ansi : -a ;
flags mc.compile MCFLAGS <mc-input-encoding>unicode : -u ;
flags mc.compile MCFLAGS <mc-output-encoding>ansi : -A ;
flags mc.compile MCFLAGS <mc-output-encoding>unicode : -U ;
flags mc.compile MCFLAGS <mc-set-customer-bit>no : ;
flags mc.compile MCFLAGS <mc-set-customer-bit>yes : -c ;
generators.register-standard mc.compile.mc : MC : H RC : <mc-compiler>mc ;
generators.register-standard mc.compile.windmc : MC : H RC : <mc-compiler>windmc ;
actions compile.mc
{
mc $(MCFLAGS) -h "$(<[1]:DW)" -r "$(<[2]:DW)" "$(>:W)"
}
actions compile.windmc
{
windmc $(MCFLAGS) -h "$(<[1]:DW)" -r "$(<[2]:DW)" "$(>:W)"
}
警告
boost-logbranchesbleeding-edge
无法为我编译(gcc 4.7.1)。我使用了boost-logtrunkboost-log
中的一个成功构建(构建于2012-09-05)。
尝试:
b2 toolset=gcc --build-type=complete threading=multi architecture=x86 address-model=32 --with-log define=BOOST_LOG_USE_CHAR --stagedir=.
它对我的Boost 1.51和Boost::Log版本721 有效
- 理解boost::asio-async_read在无需读取内容时的行为
- boost::进程间消息队列引发错误
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- cmake如何在fedora工作站中找到boost静态库包
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Boost Graph Library,修复节点大小
- 什么是"#include <boost/functional/hash.hpp> "?
- 基于boost的程序的静态链接——zlib问题
- C++:如何在CLion IDE中安装Boost
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何在boost beast http请求中设置http头
- Boost Spirit,获取迭代器内部语义动作
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 使用Boost Interprocess创建托管共享内存需要很长时间
- Boost::posix_time::ptime舍入到给定的分钟数
- 使用 Boost.Log "error: target { simple_event_log.mc. } has no type" 构建 Boost