草庐IT

reference-parameters

全部标签

c++ - CUDA/C++ - 链接错误 : undefined reference to

我是一名新手,正在寻求有关使用g++将一些已编译的CUDA目标代码链接到C++项目的帮助。之前有一些针对此帖子的问题和解决方案(here和here),但没有一个对我有用,我似乎无法弄清楚原因。不幸的是,为此我一直在使用Windows。我尝试开始工作的简单示例如下所示://kernel.hintcuda_vec_add(float*h_a,float*h_b,float*h_c,intn);添加两个vector的CUDA代码。//kernel.cu#include__global__voidvec_add_kernel(float*a,float*b,float*c,intn){inti

c++ - 对`cv::DescriptorMatcher::knnMatch 的 undefined reference

我正在尝试在androidstudio项目中使用opencvnative库。我收到函数knnMatchundefinedreference的错误。我已将openCVLibrary添加到我的项目中,并成功使用了其他openCV功能。是否有具体的使用libopencv_features2d的原因?编译和链接features2d的正确方法是什么?更新:添加我的编译文件我的应用程序build.gradle:applyplugin:'com.android.application'//android{compileSdkVersion27buildToolsVersion'27.0.3'//de

C++ 方法重载 : base and derived parameters

在网上搜索后,我没有设法找到这个问题的答案:我有这个重载方法:foo(Base*base);foo(Derived*derived);在这种情况下,“Derived”是“Base”的子类。当我打电话时:foo(newDerived());我注意到总是调用第一个重载方法,而我想获得相反的结果(调用以“Derived*”对象作为参数的方法)。如何解决?谢谢。编辑:好的,这是我的实际情况:我有一个UIWidget和一个UIScoreLabel类。UIScoreLabel派生自UIWidget。我还有一个GameEvent类(Base)和一个P1ScoreGameEvent类(Derived)

c++ - 链接时奇怪的 undefined reference

我在以下几行代码中重现了我在一个更大的项目中遇到的行为。我省略了#ifndef守卫和#include指令以提高可读性。链接器错误是在调用make时产生的。makefile包含在问题的末尾。C类继承自B,B继承自A。O是一个完全不同的类。链接器提示:g++-omainmain.cpp-L.-lABC-lO./libO.a(O.o):Infunction`O::foo(A)':O.cpp:(.text+0x1f):undefinedreferenceto`C::C(Aconst&)'这是源代码。我试图让它尽可能小和可读。知道问题出在哪里吗?/*****A.h*****/classA{pub

c++ - 查找导致 undefined reference 错误的源代码行

用C/C++编程时,迟早每个人都会遇到“undefinedreference错误”。这通常是由于缺少库引起的,并且大多数错误都可以在几秒钟内通过链接到缺少的库来修复。但是,例如,当一个人使用带有单独文件的模板进行声明和实现时,可能会得到由“意外”模板实例化引起的undefinedreference。不幸的是,我们现在得到的所有信息都是“undefinedreference错误”的实例,没有可能的原因提示,例如调用者的行号等。我好奇的是:有没有一种简单的方法可以找出调用导致undefinedreference错误的函数/模板的实际源代码行? 最佳答案

c++ - 对 Boost 线程的 undefined reference

我正在尝试编译和使用Boost1.54库,但遇到了死胡同。我编译并安装了文档中提到的库:./bootstrap.sh./b2install我什至尝试使用以下方法完全重新安装:./bootstrap.sh./b2threading=multiinstall我已经使用-lboost_thread和-L*path链接到boost*/bin.v2/libs我仍然收到以下链接器错误:undefinedreferencetoboost::thread::start_thread_noexcept()undefinedreferencetoboost::thread::join_noexcept()

c++ - 带 Eclipse CDT + MinGW + GLEW + GLFW 的 OpenGL : Undefined References

编辑:与此同时,我已经弄明白了这一点,并在下面写了一个详细的答案。我刚刚尝试在Win7上从MSVC10的Express版本切换到EclipseCDT,在配置时我遇到了以下简单OpenGL代码的问题(在VisualStudio中运行良好):#defineGLEW_STATIC#include#includeintmain(){GLFWwindow*w;if(!glfwInit())return-1;w=glfwCreateWindow(640,480,"HelloWorld",NULL,NULL);if(!w){glfwTerminate();return-1;}glfwMakeCont

c++ - Qt 5 : unable to declare signal that takes rvalue reference

可能我遗漏了什么,但我找不到任何信号不能采用右值引用的信息。所以,我有一个包含以下信号声明的类:signals:voidmessageDecoded(HTDataMsg&&msg);当我尝试编译它时,出现错误:moc_htcodec.cpp:Instaticmemberfunction‘staticvoidHTCodec::qt_static_metacall(QObject*,QMetaObject::Call,int,void**)’:moc_htcodec.cpp:71:77:error:cannotbind‘HTDataMsg’lvalueto‘HTDataMsg&&’case

c++ - 对`i2c_smbus_read_word_data(int, unsigned char) 的 undefined reference

更新到Ubuntu18.04后,我无法编译我的Qt应用程序。出现以下错误:undefinedreferenceto`i2c_smbus_read_word_data(int,unsignedchar)据我了解,i2c_smbus_read_word_data现在不在linux/i2c-dev.h中定义,而是在动态库/usr/lib/x86_64-linux-gnu/libi2c.so中定义。我尝试动态链接:-li2c静态的:/usr/lib/x86_64-linux-gnu/libi2c.a但是还是有编译错误更新:已安装libi2c-dev、libi2c0和i2c-tools包。

c++ - 对类静态 constexpr 结构的 undefined reference ,g++ vs clang

这是我的代码,a.cp​​pstructint2{intx,y;};structFoo{staticconstexprintbar1=1;staticconstexprint2bar2={1,2};};intfoo1(){returnFoo::bar1;//thisisokforbothclang++andg++}int2foo2(){returnFoo::bar2;//undefinedreferenceto`Foo::bar2'inclang++}intmain(){std::cout使用clang编译,clang++-std=c++11a.cpp/tmp/a-0dba90.o:I