草庐IT

compilers_and_libraries

全部标签

c++ - CMake + 库达 : compile cpp files in Cuda-mode (--x=cu)

假设我有一个文件,我们称它为foo.cpp,我的目标是在cuda模式下用nvcc编译这个文件。在命令行中,这可以通过调用轻松完成:nvcc--x=cufoo.cpp我正在苦苦挣扎的是让CMake做同样的事情。事实证明,CMake命令cuda_add_executable(foofoo.cpp)将过滤*.cpp文件并使用c++编译器(而不是nvcc)。请注意,将所有文件重命名为*.cu不是一种选择,因为代码库还必须支持非cuda构建。 最佳答案 在FindCUDAsourcecode我找到了一个选项来为特定的非.cu文件激活CUDA编

c++ - 错误 : operand out of range (64 is not between 0 and 31)

我在PowerPC上遇到GCC内联汇编。该程序使用-g2-O3编译良好,但使用-g3-O0编译失败。问题是,我需要在调试器下观察它,所以我需要没有优化的符号。程序如下:$cattest.cxx#include#undefvectortypedef__vectorunsignedcharuint8x16_p;uint8x16_pVectorFastLoad8(constvoid*p){longoffset=0;uint8x16_pres;__asm("lxvd2x%x0,%1,%2\n\t":"=wa"(res):"g"(p),"g"(offset/4),"Z"(*(constchar(

c++ - boost 正则表达式 : [:alpha:] and accented characters

我正在尝试使用Boost将字符串中的每个非字母字符替换为"":std::stringsanitize(std::string&str){boost::regexre;re.imbue(std::locale("fr_FR.UTF-8"));re.assign("[^[:alpha:]]");str=boost::regex_replace(str,re,"");returnstr;}intmain(){std::stringtest="(ça)/.2424,@vatrèsbien?";cout结果是avatrsbien但我想得到çavatrèsbien。我错过了什么?

c++ - dyld : Library not loaded: lib/libopencv_core. 3.0.dylib 原因:找不到图片

我遇到了以下问题:/Users/luke/Desktop/trainHOG/trainhog;导出;dyld:库未加载:lib/libopencv_core.3.0.dylib引用自:/Users/luke/Desktop/trainHOG/trainhog原因:找不到图片跟踪/BPT陷阱:5注销我使用的是运行OSXv10.9.5和openCV3.0alpha的Mac。有问题的库肯定在文件夹中。我尝试删除它并将其粘贴回文件夹中,我已经完全删除并重新安装openCV和macports,并且我尝试了exportDYLD_LIBRARY_PATH="pathtodynamiclibshere

c++ - VC++ 使用 fp :fast causes wrong (not just inaccurate) results - is this a compiler bug?

我已经安装了最新的VS2017更新(15.4.4),但在编译我们的项目时,单元测试开始失败。在使用优化(/O2)和浮点快速模型(/fp:fast)时,问题似乎发生在某些情况下。以前的编译器(VS2017update15.2)没有出现这个问题。这是一个示例程序:#includeconstfloatFACTOR=0.01745329251994329576923690768489f;unsignedlonglonghoursToMicrosecs(inthours){returnhours*3600*1000000LL;}floatdegToRad(floatdeg){returndeg*

c++ - 类设计建议 : extending a class and code reuse

这个问题的要点是关于扩展一个类,最大限度地减少将所有内容打包到一个类中,以及最大限度地重用代码。阅读此问题后,请随时编辑标题或描述以使其更简洁。虽然帖子看起来很长,但我只是想通过使用大量示例来做到全面。假设我有一个类:classUsedByManyPeople{//...hasmanyfields};顾名思义,这个类被很多开发者使用。我必须向此类添加2个功能:将UsedByManyPeople转换为SomeOtherType的convert()返回字符串的getFileName()它们都是针对我部门的需求。第一次尝试解决方案起初我想简单地向UsedByManyPeople添加2个新方法

java - JNI : Library is Found on Path, 但方法不是 (java.lang.UnsatisfiedLinkError)

我正在尝试使用JNI并获取java.lang.UnsatisfiedLinkError。与其他数百万个问题不同,我在我的路径上有这个库,甚至在我删除它时看到了异常变化。我确定我创建的dll有问题,但我不确定是什么。这是我的java类代码:packagecom;publicclassTune{static{System.loadLibrary("lala");}publicstaticvoidmain(String[]args){Tunej=newTune();System.out.println("2+6="+j.add(2,6));}nativepublicintadd(intx,i

c++ - 使用 Visual Studio 2010 : LNK4098 and LNK2005 运行 gtest

我已经按照描述安装了googletesthere.但是当我尝试对我当前的项目使用测试时,我收到2个LNK4098警告:defaultlib'MSVCRTD'与其他库的使用冲突;使用/NODEFAULTLIB:库“LIBCMTD”也是如此,还有一堆LNK2005错误。但是当我实际上忽略这两个默认库时,它并没有帮助:我得到了更多的错误。有什么问题? 最佳答案 您必须确保googletest和您的项目是使用相同版本的C运行时库(CRT)构建的。谷歌测试(目前v1.6.0)提供2个VisualStudio解决方案文件;gtest-1.6.0

c++ - Netbeans IDE 7.2.1 : How to add the c++ boost library

对于我的下一个任务,我需要在C++中进行线程处理,并且已经读到用于线程处理的boost库工作得相当好。我从来没有向Netbeans添加自定义库,希望有人可以为我提供一些要遵循的步骤,以便我可以#include它并在我的类里面使用它。到目前为止,我已经下载了以下内容:从这里boost库:http://sourceforge.net/projects/boost/files/boost/1.52.0/(不确定我在哪里提取它是否也很重要。我假设我需要将NetBeans设置为在我的包属性中的某处指向它?)适用于Windows的NetBeans7.2.1C/C++安装程序来自此处:http://

C++ 零规则 : polymorphic deletion and unique_ptr behavior

在最近overloadjournal在执行零规则主题下,作者描述了我们如何避免编写五个运算符的规则,因为编写它们的原因是:资源管理多态性缺失这两个都可以通过使用智能指针来解决。这里我特别感兴趣的是第二部分。考虑以下代码片段:classBase{public:virtualvoidFun()=0;};classDerived:publicBase{public:~Derived(){coutpB=make_shared();pB->Fun();}在这种情况下,正如文章作者所解释的那样,我们通过使用共享指针进行多态删除,这确实有效。但是如果我将shared_ptr替换为unique_ptr