草庐IT

LD_BIND_NOW

全部标签

c++ - 安装摩西翻译软件。错误消息 : "ld: library not found for -lboost_thread"

我正在使用Xcode6.1的MacOSX10.9.5上安装Moses翻译软件。Theinstructionssay我需要安装g++和Boost。执行此操作后,我将gitclone,“cd”到目录中,然后键入./bjam-j8。首先,我确认我具备先决条件。首先,g++(我只是单击TAB以查看可用的内容):$g++g++g++-4.9然后boost:$brewinstallboostWarning:boost-1.56.0alreadyinstalled然后我尝试安装:$./bjam-j8Tip:installtcmallocforfasterthreading.SeeBUILD-INST

c++ -/usr/bin/ld : cannot find -lGL

我已经安装了qt,当我在qt上运行应用程序时出现此错误。/usr/bin/ld:cannotfind-lGLcollect2:error:ldreturned1exitstatusmake:***[test3]Error114:05:48:Theprocess"/usr/bin/make"exitedwithcode2.我认为这个错误与OpenGL有关。我已经运行了所有这些命令,但没有任何反应sudoapt-getinstalllibgl1-mesa-devsudoapt-getinstalllibgl1-mesa-glxlibgl1-mesa-dev我的pro文件是:#-------

c++ - 为什么 ld 链接器允许使用相同的方法定义多个类?

考虑这个文件,first.cpp,包含一个类定义和使用:#includestructFoo{Foo(){std::cout和另一个second.cpp,包含一个冲突的类定义:#includestructFoo{Foo();~Foo();};Foo::~Foo(){std::cout当定义了两个具有相同名称的函数时,链接器会提示重复符号,但这些具有重复类方法的文件编译时没有错误。我用这些命令编译:$g++-csecond.cpp-osecond$g++secondfirst.cpp-ofirst对第二个g++调用的参数重新排序不会更改输出。当first运行时,这是输出:$./firstF

c++ - 将 C++11 move 语义应用于绑定(bind)函数

我有一些现有的C++98代码,它们使用boost::function和boost:bind进行异步回调。一些相关的简化代码片段包括:typedefboost::functionWriteHandler;structWriteOperation{WriteOperation(constboost::shared_ptr&device,conststd::string&data,constWriteHandler&handler):m_Device(device),m_Data(data),m_Handler(handler){}private:boost::shared_ptrm_Dev

c++ - 为什么可以将 std::bind 分配给参数不匹配的 std::function?

我有如下代码:#include#includeusingnamespacestd;voidF(intx){coutf1=std::bind(F,std::placeholders::_1);f1(100);//Thisworks,willprint100.intx=0;std::functionf2=std::bind(F,x);f2();//Thisworks,willprint0.std::functionf3=std::bind(F,x);f3(200);//BUTWHYTHISWORKS??????Itprints0.return0;}我的编译器信息是:AppleLLVM版本6

c++ - 关于将 const 引用绑定(bind)到临时对象的子对象

代码如下#includestructP2d{doublex,y;P2d(doublex,doubley):x(x),y(y){}~P2d(){printf("Destructorcalled\n");}};P2dcenter(){returnP2d(10,10);}intmain(intargc,constchar*argv[]){constdouble&x=center().x;printf("x=%.18g\n",x);return0;}g++(版本5.2.0)将在中输入printf之前销毁P2d临时实例main,但该值无论如何都会被保留(即,不是将x绑定(bind)到临时P2d实

c++ - Lambda 隐式捕获因从结构化绑定(bind)声明的变量而失败

使用以下代码,我得到一个编译错误C2065'a':undeclaredidentifier(使用visualstudio2017):[]{auto[a,b]=[]{returnstd::make_tuple(1,2);}();autor=[&]{returna;}();//errorC2065}();但是,下面的代码可以编译:[]{inta,b;std::tie(a,b)=[]{returnstd::make_tuple(1,2);}();autor=[&]{returna;}();}();我认为这两个样本是等价的。是编译器错误还是我遗漏了什么? 最佳答案

c++ - 使函数内联会影响绑定(bind)到其参数的临时对象的生命周期吗?

这个问题与DoesthisC++staticanalysisrulemakesenseasis?有关,但有些不同。我现在已经实现了一个静态分析规则来查找函数返回其常量引用参数作为引用的情况,例如constX&f(constX&x){returnx;}当临时对象绑定(bind)到x时,这可能很狡猾,因为临时对象的生命周期将在f的返回值可以绑定(bind)到调用者,召集者。换句话说,这是有问题的:constX&r=f(X());在运行规则时,我在标准库中找到了min的实现,如下所示:templateinlineconst_Tp&min(const_Tp&__a,const_Tp&__b){

C++ 11 绑定(bind) std::function 与存储元组和解包

首先,我对C++11还是比较陌生,所以如果我遗漏了什么,请原谅我的疏忽。所以我想做的基本上是让调用者传入一个函数和该函数的任意参数,将其存储起来,然后稍后异步调用它。似乎有2个主要选项:使用std::bind将std::function绑定(bind)到它的参数(使用可变参数模板获得),然后稍后调用它将参数包转换为一个元组,存储它和std::function,然后再次将元组解压为多个参数并使用它调用函数问题是,一种方法比另一种更好吗?两者之间有优缺点/性能优势吗?谢谢!编辑:根据要求,这里有一个澄清,第一种情况是更早的绑定(bind),我将args绑定(bind)到函数,只要调用者传递

c++ - 具有不同签名的绑定(bind)函数

如果有人问过这个问题,我深表歉意。我以为你不能用不同的签名绑定(bind)函数,但看看这个:voidTakesChar(charparameter){std::cout;intmain(){CallBackcallback=std::bind(&TakesChar,std::placeholders::_1);callback(1.1f);callback(2.2f);return0;}编译并运行。您可以尝试不同的参数类型和数量。例如,您可以修改TakesChar,使其不带任何参数,但仍会编译。这是为什么?这背后有什么道理吗?我可以强制签名完全匹配吗?谢谢。