草庐IT

gnu-parallel

全部标签

c++ - 如何使用 GNU Make 项目设置 Google Test?

由于Google测试网页上基本上没有任何文档,我该怎么做呢?到目前为止我所做的:我从项目页面下载了googletest1.6并在其中执行了./configure&&make我将-Igtest/include-Lgtest/lib添加到我的编译器/链接器标志我写了一个小样本测试:#include"gtest/gtest.h"intmain(intargc,char**args){return0;}TEST(someTest,testOne){ASSERT_EQ(5,5);}这编译得很好,但链接器似乎一点也不开心。我收到一大堆错误消息,格式如下test/main.o:Infunctions

c++ - GNU 的 nana 库死了吗?是否有后继者在使用?

查看http://savannah.gnu.org/projects/nana/似乎上次的工作是四年前在Nana上完成的,nana的官方gnu.org主页是一个占位符。鉴于不活跃的项目往往会遭受比特腐烂:项目结束了吗?有继任者吗?人们是否有其他更好的C/C++断言/日志记录库? 最佳答案 如果您正在寻找日志记录库,请使用Log4Cxx:http://logging.apache.org/log4cxx/如果您正在寻找断言检查,请使用单元测试框架,例如UnitTest++:http://unittest-cpp.sourceforge

如何使用 OpenCV parallel_for_并行化代码

目标本教程的目的是演示如何使用OpenCV框架轻松并行化代码。为了说明这个概念,我们将编写一个程序来对图像执行卷积运算。完整的教程代码在这里。parallel_for_前提并行框架第一个前提条件是使用并行框架构建OpenCV。在OpenCV4.5中,以下并行框架按此顺序提供:英特尔线程构建模块(第三方库,应显式启用)OpenMP(集成到编译器,应显式启用)APPLEGCD(系统范围,自动使用(仅限APPLE))WindowsRT并发(系统范围,自动使用(仅限WindowsRT))Windows并发(运行时的一部分,自动使用(仅限Windows-MSVC++>=10))Pthreads(线程)如

c++ - G++ 4.6 -std=gnu++0x : Static Local Variable Constructor Call Timing and Thread Safety

voida(){...}voidb(){...}structX{X(){b();}};voidf(){a();staticXx;...}假设在进入main之后,f被多个线程(可能竞争)多次调用。(当然,唯一对a和b的调用是上面看到的那些)以上代码在-std=gnu++0x模式下用gccg++4.6编译时:Q1。是否保证至少调用一次a()并在调用b()之前返回?也就是说,在第一次调用f()时,x的构造函数是否会同时调用一个自动持续时间局部变量(非静态)(而不是在全局静态初始化时间)?Q2。是否保证b()只会被调用一次?即使两个线程第一次同时在不同的核上执行f?如果是,GCC生成的代码通过

c++ - 使用 dlopen 加载 GNU ld 脚本

我有一个C++14代码,它应该使用dlopen加载任意共享对象文件。不幸的是,在某些系统上(例如我的archlinux,据报道也适用于ubuntu和gentoo上的某些.so),这些so文件可以是“GNUld脚本”而不是实际的二进制文件。作为引用,这里是我的/usr/lib/libm.so的内容:/*GNUldscript*/OUTPUT_FORMAT(elf64-x86-64)GROUP(/usr/lib/libm.so.6AS_NEEDED(/usr/lib/libmvec.so.1))我在ghc中找到了几个处理这个问题的代码片段或ruby.我想避免诉诸基于解析dlerror文本和

c++ - 是否有可能在其工作后将线程连接到 'parallel for' 区域?

一开始我有两个作业需要同时运行:1)可以并行化的for循环2)一个线程就可以完成的功能现在,让我描述一下我想做什么。如果存在8个可用线程,job(1)和job(2)必须首先同时运行,分别有7个线程和1个线程。作业(2)完成后,作业(2)使用的线程应分配给并行for循环的作业(1)。我正在使用omp_get_thread_num计算每个区域中有多少线程处于事件状态。我希望job(1)中的线程数在job(2)完成时增加1。下面描述了一个可能错误或正确的解决方案:omp_set_nested(1);#pragmaompparallel{#pragmaompsections{#pragmaom

c++ - OpenMP "master"编译指示不得包含在 "parallel for"编译指示中

为什么英特尔编译器不允许我指定openmpparallelforblock中的某些操作应该仅由主线程执行?如果没有这种功能,我该如何实现我想要实现的目标?我想做的是通过并行回调来更新进度条:longnum_items_computed=0;#pragmaompparallelforschedule(guided)for(...arangeofitems...){//updateitemcount#pragmaompatomicnum_items_computed++;//updateprogressbarwithnumberofitemscomputed//masterthreadon

c++ - 我怎样才能用 GNU g++ 只编译标准 C++?

GNUg++编译器中有一些扩展,例如VLA(可变长度数组),即使这些功能不是C++标准。因此,如果我需要仅使用C++标准构造来编译程序并避免那些额外的扩展,我可以使用GNUg++来完成吗?像g++test.cpp-std=onlyStandards这样的东西? 最佳答案 传递-pedantic-errors标志。请务必使用-std=设置标准,例如-std=c++14。这也适用于clang。 关于c++-我怎样才能用GNUg++只编译标准C++?,我们在StackOverflow上找到一个

c++ - Qt 5.7 将 -std=gnu++11 添加到我的编译器标志,破坏 -std=c++14

我在我的CMakeLists.txt中设置了以下标志set(CMAKE_CXX_FLAGS"-std=c++14-g-O0")然后我使用find_package找到Qt5Testfind_package(Qt5TestREQUIRED)然后我正在创建一个ModelTest图书馆add_library(modeltestSTATIC${SRCS})target_link_libraries(modeltestQt5::Test)出于某种原因,我将-fPIC-std=gnu++11添加到我的编译器标志中CMakeFiles/modeltest.dir/flags.make:CXX_FLAG

【问题解决】make[2]: *** 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libopencv_XXX错误

记录一下使用ubuntu中的各种问题【问题详述】make[2]:***没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0”,由“/home/victor/cooperate/ur5_husky/devel/lib/libmoveit_lazy_free_space_updater.so.1.1.13”需求。停止。make[1]:***[CMakeFiles/Makefile2:26268:moveit/moveit_ros/perception/lazy_free_space_updater/CMakeFiles/mov