Articles of 提升

如何在Linux中添加boost库到Code :: Blocks

如何将Boot库添加到Linux Ubuntu的Code :: Blocks项目中。 例如,我想添加regex库。 我已经安装了靴子库: sudo apt-get install libboost-all-dev 完整的例子将how to将是最有价值的。

在unix上加强UDP套接字问题 – bind:已经在使用的地址

首先,我知道在同一主题上还有其他几个主题,但是我无法find那些能够帮助我的东西,所以我会试着对我的情况非常具体。 我已经build立了一个简单的UDP客户端/ UDP服务器对,负责在几个并行模拟之间发送数据。 也就是说,模拟器的每个实例都在一个单独的线程中运行,并在UDP套接字上发送数据。 在主线程中,服务器正在运行,并在模拟之间路由消息。 (对于这个问题)服务器代码的重要部分如下所示: UDPServer::UDPServer(boost::asio::io_service &m_io_service) : m_socket(m_io_service, udp::endpoint(udp::v4(), PORT_NUMBER)), m_endpoint(boost::asio::ip::address::from_string("127.0.0.1"), PORT_NUMBER) { this->start_receive(); }; void UDPServer::start_receive() { // Set SO_REUSABLE to true boost::asio::socket_base::reuse_address option(true); this->m_socket.set_option(option); // Specify what happens when a message is received (it should call the handle_receive function) this->m_socket.async_receive_from( boost::asio::buffer(this->recv_buffer), this->m_endpoint, boost::bind(&UDPServer::handle_receive, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); }; 这在我的Windows工作站上正常工作。 事情是; 我希望能够在linux集群上运行它,这就是为什么我编译它并试图在集群节点上运行它的原因。 代码编译没有一丝困难,但是当我尝试运行它时,我得到的错误 […]

如何使用C ++ Boost库与pkg-config?

我成功编译并安装了最新版本的Boost库到我的linux机器上。 现在,我希望能够使用pkg-config来简化与GCC提供链接参数的过程。 由于我懒得手工编写我自己的.pc文件,是否有一个脚本/工具,会自动生成所需的.pc文件或以其他方式更新pkg-config与升压标志? (如果某人已经拥有该.pc文件,则也欢迎分享。)

Boost.Log在GNU / Linux下链接错误

我想testingBoost.Log库。 不幸的是,我得到链接错误。 我使用Arch Linux,我通过内置的包pipe理器pacman安装了Boost头文件和库: 提升1.54.0-3 boost-libs 1.54.0-2 当从官方网站通过g++ log.cpp -lboost_log -lpthread编译简单示例时,出现以下错误: log.cpp:(.text+0x42): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()' log.cpp:(.text+0x9b): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()' … 我读过为什么我的应用程序无法链接到Boost.Log? ,但我无法解决链接错误。 它只给了我提示, boost::log::v2s_mt_posix::trivial::logger::get()所在的库是静态链接的。 但是在/usr/lib/目录下,只有dynamic连接的扩展名为.so Boost库。 也许,有人知道这里有什么问题。 谢谢。

在类中使用静态互斥

我有一个class,我可以有很多的实例。 它内部创build并初始化一些来自第三方库(使用一些全局variables)的成员,并且不是线程安全的。 我想过使用静态boost :: mutex,这将被locking在我的类的构造函数和析构函数。 因此,在我的线程中创build和销毁实例对于第三方成员来说是安全的。 class MyClass { static boost::mutex mx; // 3rd party library members public: MyClass(); ~MyClass(); }; MyClass::MyClass() { boost::mutex::scoped_lock scoped_lock(mx); // create and init 3rd party library stuff } MyClass::~MyClass() { boost::mutex::scoped_lock scoped_lock(mx); // destroy 3rd party library stuff } 我无法链接,因为我收到错误: undefined reference to `MyClass::mx` 我是否需要这种静态成员的特殊初始化? 使用静态互斥锁有什么错误吗? 编辑:链接问题是正确的定义在CPP boost::mutex MyClass::mx;

提升Asio单线程性能

我正在实现自定义服务器,需要保持非常大的数量(100K或更多)的长期连接。 服务器只是在套接字之间传递消息,并没有做任何严肃的数据处理。 消息很小,但是其中许多消息都是每秒收到/发送的。 减less延迟是目标之一。 我意识到使用多核并不会提高性能,因此我决定通过调用io_service对象的run_one或poll方法在单个线程中运行服务器。 无论如何,multithreading服务器将更难实施。 什么是可能的瓶颈? 系统调用,带宽,完成队列/事件解复用? 我怀疑调度处理程序可能需要locking(这是由asio库内部完成)。 是否有可能禁用boost.asio甚至队列locking(或任何其他locking)? 编辑:相关的问题。 multithreading的系统调用性能是否会提高? 我的感觉是,因为系统调用是由内核primefaces/同步添加更多的线程不会提高速度。

configuration错误:无法链接到boost_system

我试图在Debian上安装一个软件包(足球模拟器2d)。 当我到目录并运行./configure ,我得到以下内容: reza@debian:~/soccer/rcssserver-15.0.1$ ./configure checking for a BSD-compatible install… /usr/bin/install -c checking whether build environment is sane… yes checking for a thread-safe mkdir -p… /bin/mkdir -p checking for gawk… no checking for mawk… mawk checking whether make sets $(MAKE)… yes checking for g++… g++ checking whether the C++ compiler works… yes checking for C++ […]

C ++ Boost ASIO简单周期性定时器?

我想要一个非常简单的周期性定时器,每50ms调用一次我的代码。 我可以创build一个睡眠时间为50ms的线程(但是这很痛苦)…我可以开始研究Linux API来制作计时器(但它不是可移植的)… 我想使用提升..我只是不知道这是可能的。 增强提供这个function吗?

Boost.Extension – 简单的inheritance样例 – 为什么我们在linux上看不到动物?

所以我尝试为Linux移植一些Boost.Extension示例 。 样本在这里描述。 这里是我的代码端口( 类与动物 , 动物原型 , 主要应用程序 ,一般所有端口的想法在这里描述 ,和一些当前的Linux进展在这里(一些样品真的按需要工作!) )。 当我在linux下编译这个样本时,它会find动物的库,但输出: Animals not found! 只有if(factories.empty())才会发生这种情况。 我尝试将扩展示例移植到跨平台的基础上 – 所以我在Windows下尝试了相同的代码 – 像魅力一样工作! find所有的动物和产出: Creating an animal using factory: Cougar factory Created an animal: cougar Age: 2 Creating an animal using factory: Leopard factory Created an animal: leopard Age: 3 Creating an animal using factory: Puma […]

用Qt Creator和Linux加速

所以我补充说: LIBS += -lboost_system\ -lboost_gregorian 我的项目.pro,但在创造者说:“找不到-lboost_system”。 我尝试使用“UNCLUDEPATH”,但这打破了所有图书馆的path。 任何人有任何想法如何使用Qt Creator的boost :: gregorian? 编辑:下面的工作得到它的认可,但打破了所有其他图书馆。 INCLUDEPATH + = / usr / include LIBS + = -L“/ usr / include / boost”-lboost_system -lboost_gregorian