草庐IT

forward-reference

全部标签

c++ - gcc: undefined reference

我想编译这个。program.c#includeintmain(){inti=avpicture_get_size(AV_PIX_FMT_RGB24,300,300);}运行这个gcc-I$HOME/ffmpeg/includeprogram.c报错/tmp/ccxMLBme.o:Infunction`main':program.c:(.text+0x18):undefinedreferenceto`avpicture_get_size'collect2:ldreturned1exitstatus但是,avpicture_get_size是定义的。为什么会这样?

c++ - gcc: undefined reference

我想编译这个。program.c#includeintmain(){inti=avpicture_get_size(AV_PIX_FMT_RGB24,300,300);}运行这个gcc-I$HOME/ffmpeg/includeprogram.c报错/tmp/ccxMLBme.o:Infunction`main':program.c:(.text+0x18):undefinedreferenceto`avpicture_get_size'collect2:ldreturned1exitstatus但是,avpicture_get_size是定义的。为什么会这样?

c++ - 模板方法的 undefined reference 错误

这个问题在这里已经有了答案:Whycantemplatesonlybeimplementedintheheaderfile?(17个回答)关闭5年前。在过去的一个半小时里,这一直让我发疯。我知道这是一件小事,但找不到问题所在(当然,周五下午下雨,这无济于事)。我已经定义了以下类,它将保存从文件中读取的配置参数,并允许我从我的程序中访问它们:classVAConfig{friendstd::ostream&operatorvalueHash;public:staticVAConfig*getInstance();staticvoidsetConfigFileName(std::strin

c++ - 模板方法的 undefined reference 错误

这个问题在这里已经有了答案:Whycantemplatesonlybeimplementedintheheaderfile?(17个回答)关闭5年前。在过去的一个半小时里,这一直让我发疯。我知道这是一件小事,但找不到问题所在(当然,周五下午下雨,这无济于事)。我已经定义了以下类,它将保存从文件中读取的配置参数,并允许我从我的程序中访问它们:classVAConfig{friendstd::ostream&operatorvalueHash;public:staticVAConfig*getInstance();staticvoidsetConfigFileName(std::strin

c++ - 强制 GCC 通知共享库中 undefined reference

我有一个与另一个(第三方)共享库链接的共享库。然后在我的应用程序中使用dlopen加载我的共享库。所有这些都可以正常工作(假设文件位于正确的路径等中)。现在,问题是当我链接我的库时,我什至不需要指定链接到第三方共享库。GCC接受它而不报告关于undefinedreference的错误。所以,问题;如何强制GCC通知我undefinedreference?如果我将库更改为(临时)可执行文件,我会得到undefinedreference(当不将库提供给链接器时)。(如果我指定它就可以正常工作。)即完成以下操作:g++-fPIC-shared-olibb.sob.og++-fPIC-shar

c++ - 强制 GCC 通知共享库中 undefined reference

我有一个与另一个(第三方)共享库链接的共享库。然后在我的应用程序中使用dlopen加载我的共享库。所有这些都可以正常工作(假设文件位于正确的路径等中)。现在,问题是当我链接我的库时,我什至不需要指定链接到第三方共享库。GCC接受它而不报告关于undefinedreference的错误。所以,问题;如何强制GCC通知我undefinedreference?如果我将库更改为(临时)可执行文件,我会得到undefinedreference(当不将库提供给链接器时)。(如果我指定它就可以正常工作。)即完成以下操作:g++-fPIC-shared-olibb.sob.og++-fPIC-shar

c++ - std::forward 与 std::move 的用法

我总是读到std::forward仅用于模板参数。然而,我在问自己为什么。请参阅以下示例:voidImageView::setImage(constImage&image){_image=image;}voidImageView::setImage(Image&&image){_image=std::move(image);}这是两个基本相同的功能;一个采用左值引用,另一个采用右值引用。现在,我想既然std::forward应该返回一个左值引用,如果参数是一个左值引用和一个右值引用,如果参数是一个,这个代码可能是简化成这样:voidImageView::setImage(Image&&

c++ - std::forward 与 std::move 的用法

我总是读到std::forward仅用于模板参数。然而,我在问自己为什么。请参阅以下示例:voidImageView::setImage(constImage&image){_image=image;}voidImageView::setImage(Image&&image){_image=std::move(image);}这是两个基本相同的功能;一个采用左值引用,另一个采用右值引用。现在,我想既然std::forward应该返回一个左值引用,如果参数是一个左值引用和一个右值引用,如果参数是一个,这个代码可能是简化成这样:voidImageView::setImage(Image&&

c++ - 为什么 vector<bool>::reference 不返回对 bool 的引用?

#includestructA{voidfoo(){}};templatevoidcallIfToggled(boolv1,bool&v2,T&t){if(v1!=v2){v2=v1;t.foo();}}intmain(){std::vectorv={false,true,false};constboolf=false;Aa;callIfToggled(f,v[0],a);callIfToggled(f,v[1],a);callIfToggled(f,v[2],a);}上面例子的编译产生下一个错误:dk2.cpp:Infunction'intmain()':dk2.cpp:29:28:

c++ - 为什么 vector<bool>::reference 不返回对 bool 的引用?

#includestructA{voidfoo(){}};templatevoidcallIfToggled(boolv1,bool&v2,T&t){if(v1!=v2){v2=v1;t.foo();}}intmain(){std::vectorv={false,true,false};constboolf=false;Aa;callIfToggled(f,v[0],a);callIfToggled(f,v[1],a);callIfToggled(f,v[2],a);}上面例子的编译产生下一个错误:dk2.cpp:Infunction'intmain()':dk2.cpp:29:28: