草庐IT

make_links_absolute

全部标签

c++ -/usr/bin/ld : warning: abc. 所以,找不到 xyz.so 所需(尝试使用 -rpath 或 -rpath-link)”

我正在构建一个C++应用程序,使用Netbeans6.9作为我的IDE。我有一个C++库,它是一个纯C库的包装器。我已将文件正确添加到项目中(使用添加库文件选项)。这是g++和链接器产生的输出:g++-odist/Debug/GNU-Linux-x86/testluaembedbuild/Debug/GNU-Linux-x86/src/main.obuild/Debug/GNU-Linux-x86/src/LuaBinding.o-L../../mainline/tanlib_core/dist/Debug/GNU-Linux-x86-L../../mainline/tanlib++/

c++ - 生成器模式 : making sure the object is fully built

例如,如果我设置了一个构建器,那么我可以像这样创建对象:Nodenode=NodeBuilder().withName(someName).withDescription(someDesc).withData(someData).build();如何确保用于构建对象的所有变量都已在构建方法之前设置?例如:Nodenode=NodeBuilder().withName(someName).build();不是一个有用的节点,因为还没有设置描述和数据。我使用构建器模式的原因是因为没有它,我需要大量的构造器组合。例如名称和描述可以通过Field对象来设置,数据可以通过文件名来设置:Noden

c++ - 内联失败 : function body can be overwritten at link time

我今天从我认为具有g++-4.6的Ubuntu12.04升级到具有g++-4.7.2的Ubuntu12.10。在我的代码中,我有几个函数标记为__attribute__((always_inline))。原因很简单,分析向我展示了它显着提高了代码的性能。它在g++4.6上运行良好,但现在在g++4.7上我收到错误消息:error:inliningfailedincalltoalways_inline'voidfunc_name(args)':functionbodycanbeoverwrittenatlinktime我无法分享我的实际代码,我试图缩小范围,但是当我更改太多时,错误就会消

C++ 数组和 make_unique

作为this的后续行动发布后我想知道它的make_unique实现如何与分配函数临时缓冲区数组一起使用,例如以下代码。f(){autobuf=newint[n];//temporarybuffer//usebuf...delete[]buf;}这可以替换为对make_unique的一些调用,然后会使用[]-version的delete吗? 最佳答案 这是另一个解决方案(除了Mike的):#include#include#includetemplatetypenamestd::enable_if::value,std::unique_

c++ - std::tie 与 std::make_tuple

Thiscodecompiles但我想知道应该首选哪个版本:#include#includeusingnamespacestd;tuplereturn_tuple1(){inta=33;intb=22;intc=31;returntie(a,b,c);}tuplereturn_tuple2(){inta=33;intb=22;intc=31;returnmake_tuple(a,b,c);}intmain(){autoa=return_tuple1();autob=return_tuple2();return0;}由于该函数按值返回一个元组,因此使用std::tie应该没有任何问题,对

c++ - cmake:target_link_libraries 使用未共享的静态库

是否可以告诉cmake链接到静态库而不是共享?在我的CMakeLists.txt顶部,我配置了以下内容:set(CMAKE_FIND_LIBRARY_SUFFIXES.a${CMAKE_FIND_LIBRARY_SUFFIXES})稍后,我添加了一个二进制文件,并告诉它在Release模式下链接到tcmalloc:target_link_libraries(${BIN_NAME}optimizedtcmalloc_minimal)生成的makefile链接到tcmalloc的共享版本:$makeVERBOSE=1|greptcmalloc/usr/bin/c++...-Wl,-Bdyn

c++ - fatal error LNK1302 : only support linking safe . 网络模块;无法链接 ijw/native .netmodule

我有native非托管代码。我创建了一个托管C++DLL并尝试将此DLL包含到native非托管代码中。我收到以下错误fatalerrorLNK1302:onlysupportlinkingsafe.netmodules;unabletolinkijw/native.netmodule如何将托管C++/CLRDLL包含到native非托管代码中? 最佳答案 确保您添加的是库('.lib')文件,而不是DLL('.dll')作为链接器的输入。那肯定会产生LNK1302错误。 关于c++-f

c++ - 综合 gnu make/gcc 教程

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于StackOverflow来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我刚开始学习C++,我发现很难找到关于如何使用gnumake/gcc的简短、全面的教程。任何想法(请不要将我指向官方的gnumake教程,它对我的​​目的来说太深入了;-))。 最佳答案 查书Man

c++ - 这种使用 std::make_unique 会导致非唯一指针吗?

假设我在C++中有以下代码:#include#includestructSome{Some(int_a):a(_a){}inta;};intmain(){Somesome(5);std::unique_ptrp1=std::make_unique(some);std::unique_ptrp2=std::make_unique(some);std::coutaa据我了解,唯一指针用于保证不共享资源。但在这种情况下,p1和p2都指向同一个实例some。请公布情况。 最佳答案 它们不指向相同的资源,它们各自指向不同的拷贝。可以通过删除拷

c++ - 我可以将 std::make_shared 与没有参数构造函数的结构一起使用吗?

假设我有一个像这样的struct:structS{inti;doubled;std::strings;};我可以这样做吗?std::make_shared(1,2.1,"Hello") 最佳答案 不,您不能,您必须定义自己的构造函数才能做到这一点。#include#include#includestructS{S(intii,doubledd):i(ii),d(dd){}inti;doubled;};intmain(){//Ss{1,2.1};autos=std::make_shared(1,2.1);//orwithoutcons