问题标签 [boost-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
802 浏览

c++ - Runtime error using boost - undefined symbol: _ZN5boost6system15system_categoryEv

I am compiling a simple project (shared library) using CMake, this is the content of the CMakeLists.txt

I dont receive any error when compiling, when running the program that loads this shared library I receive:

./test.so: undefined symbol: _ZN5boost6system15system_categoryEv

The program that loads this shared library just do the following:

The shared library uses a Thread Local Storage from Boost, inside a class one of the members is:

That is the only thing I am using from boost

0 投票
1 回答
103 浏览

c++ - boost::system::generic_category 在静态链接后未定义

我正在构建一个共享库,它与 boost 静态链接,如下所示:

问题是当在 Ubuntu 16.04 上 dlopen 这个库时,应该静态链接的符号未定义(参见以下命令输出:U)而该符号可以在 libboost_system.so 的文本区域中找到,如最后一个命令输出中所验证.

例如:

纳米../liboms_rocketmq.so | grep _ZN5boost6system16generic_categoryEv U _ZN5boost6system16generic_categoryEv

nm /usr/local/lib/libboost_system.so| grep _ZN5boost6system16generic_categoryEv 00000000000013e0 T _ZN5boost6system16generic_categoryEv

知道为什么静态链接不能按预期工作吗?又名,将符号插入我们共享库的文本区域。

0 投票
1 回答
816 浏览

linux - 如何在 Visual Studio 2017 中为跨平台 Linux 项目链接 Linux 库?

我在 Windows 上,并在 Visual Studio 2017 社区中使用为 Linux 构建的跨平台项目。我正在尝试构建我的项目,但由于某种原因,未检测到或未正确使用库。

在阅读了一些 SO 帖子之后,这似乎是因为libboost_system找不到该库,但是它肯定存在,/usr/lib/libboost_system.a但由于某种原因,构建没有引用这个。我尝试将库添加到 Visual Studio 中的链接器,但它似乎仍然不起作用。

如果我在 Linux 机器上使用应用程序正确构建手动编译项目,g++ main.cpp -o main -lboost_system但这意味着我无法调试应用程序,所以我想让它为远程构建工作。

有谁知道从 Visual Studio 使用远程构建时如何链接这些库?

0 投票
1 回答
537 浏览

c++ - 未定义符号 boost::system:detail::system_category_instance

在编译使用beastasio的游乐场程序时,我在 macOS Mojave 上使用 c++17 标准和 clang 构建了 boost,但出现以下错误:
在此处输入图像描述

这是我的制作文件:

我已经使用本教程中描述的步骤编译了 boost: 使用 Clang 编译 Boost

Clang 版本:
Apple LLVM 版本 10.0.0.0 (clang-1000.11.45.5)
目标:x86_64-apple-darwin18.2.0

还有什么我需要考虑的吗?我已经阅读了很多帖子等,建议在项目本身中使用的相同 c++ 标准中编译 boost。

编辑:
Matthieu Brucher 的变量名提示(Boost_ vs. BOOST_)起到了作用。现在它正在工作。

0 投票
1 回答
669 浏览

c++ - Boost system 1.69.0 不只是标题?

自 1.69.0 以来,Boost 系统是一个只有头文件的库。但是,链接到libboost_filesystem.so.1.69.0这些链接器错误:

这表明我仍然需要链接到libboost_system.so,即使它应该只是标题。在构建 Boost 本身以获得真正的仅标头系统库时,我是否需要设置一些特殊标志?

0 投票
0 回答
93 浏览

c++ - '': 无法从 'cmdline_error' 转换为 'boost::system::system_error'

我的项目多年来一直在使用 boost 1.58。现在我已经将 Visual Studio 版本升级到 2017 年。并且提升版本 1.68.0

Boost 1.68.0 在它的 error_code 类中有一些改变,这会破坏我们的构建。

收到以下错误

其中 cmdline_error 定义如下

这是造成错误的声明

在linux build中,出现如下错误

此代码适用于 boost 1.48、1.58。1.62

在这里处理此错误的正确方法是什么?

0 投票
1 回答
92 浏览

boost - 如何正确链接/构建 Boost 库?

伙计们,这个话题几乎要疯了。

我有一个要安装的大软件,它的要求之一是 boost 库。我使用英特尔工具集构建它,但是当我尝试制作软件时,它总是给我这个错误:

我的 boost 库是使用以下命令构建的:

我正在构建软件:

在 boost 测试中似乎还不错:

操作系统是 CentOS Linux release 7.4.1708 (Core)

有人可以指出进一步尝试的方向吗?

0 投票
0 回答
168 浏览

c++ - 运行 boost::process::system 时出现错误的文件描述符错误

运行以下代码时,我在 XCode 输出中收到错误消息

nw_path_close_fd 无法关闭受保护的 necp fd 47 [9: 错误的文件描述符]

代码:

提升版本 1.70

XCode 版本 11.3.1

即使我只是运行也存在错误boost::process::system( "df" )

看到这篇文章:boost::process system leaking file descriptors,我尝试在 posix/executor.hpp 中进行建议的更改。但我仍然得到错误。(进行更改后,我没有进行任何 boost 库构建。我想,它可能不是必需的,因为它只是一个 hpp 文件更改)

更新

我能够在不使用 df 实用程序的情况下获得所需的信息(网络 uri 和挂载卷之间的映射)(感谢 Timemage)。但是保持这个问题是开放的,因为它与这个用例无关。