草庐IT

Boost-asio

全部标签

使用 MinGW-w64 和 Boost.Build 的 C++ 构建环境

我目前正在将我的一个项目移植到GCC,并且我正在使用MinGW-w64项目来完成这项工作,因为我需要x64和x86支持。不过,我在设置构建环境时遇到了问题。我的项目目前使用BoostC++库,为了简化构建过程,我也在我的项目中使用了Boost.Build(因为它使集成变得简单)。在MSVC下这很好,因为我可以从命令行执行以下操作:b2toolset=msvcaddress-model=32#compileas32-bitb2toolset=msvcaddress-model=64#compileas64-bitMinGW-w64使这个“有问题”,因为32位和64位工具链位于不同的目录中

c++ - 如何在 Windows 中使用 boost asio 从命令行异步读取输入?

我找到了thisquestion它询问如何异步读取输入,但只适用于POSIX流描述符,这在Windows上不起作用。所以,我找到了thistutorial这表明我可以使用boost::asio::windows::stream_handle而不是使用POSIX流描述符。根据这两个示例,我想出了下面的代码。当我运行它时,我无法在命令提示符中键入任何内容,因为程序会立即终止。我希望它捕获来自用户的任何输入,可能到std::string中,同时允许我的程序中的其他逻辑执行(即从Windows控制台执行异步I/O)。本质上,当我的程序试图从stdin中读取时,我试图避免阻塞我的程序。我不知道这

c++ - 使用 Visual Studio 调试时看不到 boost::optional 内容

如果我尝试直接查看变量,我会看到一个?符号。如果我创建一个调用is_initialized函数的watch,我会收到以下错误:CXX0033:Error:errorinOMFtypeinformation我没有找到太多关于使用Google的Boost相关错误的信息。有没有人遇到过这种情况?到处使用OutputDebugString并重新构建是一件麻烦事...编辑:在WindowsXPSP3idem和Boost1.49.0中使用VisualStudio2010SP1和所有修补程序更新:这个问题来来去去,并不是一直发生;DebuggerVisualizers是一个很棒的解决方案,我已将它们

windows - 如何使使用 CMake 构建的可执行文件可以访问 Boost DLL?

我在Windows上使用CMake来构建基于Boost.Test的测试套件。当我动态链接到Boost.Test时,我的可执行文件需要能够找到DLL(位于../../../boost/boost_1_47/lib或与可执行文件相关的类似内容)。所以我需要将DLL复制到可执行文件所在的文件夹中,或者以其他方式使其可找到。使用CMake实现此目标的最佳方法是什么?--附加信息--我的CMakeLists.txt目前有这个Boost相关配置:set(Boost_ADDITIONAL_VERSIONS"1.47""1.47.0")set(BOOST_ROOT"../boost")find_pac

c++ - boost::filesystem::path 和 fopen()

当我尝试这样做时出现错误:pathp="somepath";FILE*file=fopen(p.c_str(),"r");我得到:argumentoftype"constboost::filesystem::path::value_type*"isincompatiblewithparameteroftype"constchar*"谁能告诉我我做错了什么?谢谢 最佳答案 如果您在Windows下,value_type是wchar_t,并且将在fopen的转换中失败(需要一个字符*)。根据文档,您似乎必须使用string()方法来获取

c++ - 编译 boost 时 `threading=multi` 到底做了什么?

我不完全确定threading=multi到底是什么flag在构建boost时会做。文档说:Causestheproducedbinariestobethread-safe.Thisrequirespropersupportinthesourcecodeitself.这似乎不是很具体。这是否意味着访问,例如,boost容器由mutexes/locks保护?或类似?由于我的代码的性能至关重要,我想尽量减少任何不必要的互斥等。更多细节:我的代码是一个插件DLL,它被加载到一个多线程的第三方应用程序中。我将boost静态链接到DLL(除了标准WindowsDLL外,不允许插件具有任何其他依赖

windows - CMake 找不到 Boost 库

我正在尝试使用CMake脚本在Windows上编译基于Boost的应用程序。仅header库工作正常,但CMake无法找到这些库(无法找到以下Boost库:boost_serialization)。CMake脚本的相关部分是:#PathwhereCMakecanfindadditionallibrariesSET(CMAKE_PREFIX_PATHLibs)#BoostSET(Boost_ADDITIONAL_VERSIONS"1.47""1.47.0")SET(Boost_USE_STATIC_LIBSON)find_package(BoostREQUIREDCOMPONENTSse

ios - 使用 Cmake for iOS 查找 boost 框架

我将Boost构建为iOS框架。目前安装在Applications/Xcode.app/Contents/Developer/Library/Frameworks/中。当我创建一个“手工生成”的XCode项目时,我使用这个框架没有任何问题。我现在正在尝试使用CMake生成XCode项目。我发现这个有用的交叉编译工具链(https://github.com/cristeab/ios-cmake)。只要我不包括find_package(Boost)但是当上面的行被添加到我的CMakeLists.txt文件时,我得到一个“Boost_INCLUDE_DIR-NOTFOUND”所以问题是:有没

c++ - 无法使用 boost.sh 脚本制作的 Boost 框架来制作 cpp-netlib

我正在尝试使用cmake编译cpp-netlib。我的配置:OSX10.9.1小牛+Xcode5.0.2cpp-netlib0.11.0cmake2.8.12.2boost1.55.0因为我试图让整个系统在OSX和iOS7上运行,所以我使用以下脚本制作了一个Boost框架:https://github.com/mgrebenets/boost-xcode5-iosx我在没有c++11的情况下进行了全新安装,如示例所示:“$./boost.shclean-v1.55.0”这产生了两个“boost.framework”目录,一个用于OSX,第二个用于iOS。我已在“BuildPhases>

ios - pod boost 安装错误 tar : Unrecognized archive format

正在关注this链接,我正在尝试创建链接中给出的示例项目。我按照链接中给出的方式创建了pod文件,但是当我安装pod时,出现以下错误:[!]Errorinstallingboost[!]/usr/bin/tarxfz/Volumes/DATA/../cineio-broadcast/Pods/boost/file.tgz-C/Volumes/DATA/../cineio-broadcast/Pods/boosttar:Unrecognizedarchiveformattar:Errorexitdelayedfrompreviouserrors.错误截图如下:我哪里错了?我该如何解决这个