草庐IT

qmake-variable-reference

全部标签

c++ - 为什么这个 "undefined extern variable"不会导致 C++17 中的链接器错误?

我已经在C++17编译器(Coliru)中编译并运行了以下程序。在程序中,我声明了一个extern变量,但没有定义它。但是,编译器不会给出链接器错误。#includeexterninti;//Onlydeclarationintfunc(){ifconstexpr(true)return0;elseif(i)returni;elsereturn-1;}intmain(){intret=func();std::cout为什么编译器不给出链接器错误? 最佳答案 因为变量没有被odr使用。你有一个constexprif总是丢弃可以使用它的

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++ - 为什么 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:

C++ 预处理器 : avoid code repetition of member variable list

我有多个类,每个类都有不同的成员变量,这些变量在构造函数中被简单地初始化。这是一个例子:structPerson{Person(constchar*name,intage):name(name),age(age){}private:constchar*name;intage;};每个都有一个关联的print()功能。templatevoidprint(constPerson&person){std::cout此代码容易出错,因为参数列表在四个位置复制。如何重写代码以避免这种重复?我想使用预处理器和/或模板。例如,我可以使用X-args预处理器技术吗?#defineARGUMENTS\A