jjzjj

c++ - 在 c/c++ 中使用 extern 背后的概念是什么?

很抱歉提出此类问题。但是,我对C\C++中的关键字extern非常好奇。在搜索extern的解释时,我了解到extern告诉编译器变量或函数已经在其他文件或程序中定义。但如果是这种情况,那我们为什么要使用extern?因为我尝试了一些代码如下:externintvar;intmain(void){var=10;return0;}这段代码给我的错误消息是unresolvedexternalsymbol"intvar"(?var@@3HA)。如果我使用的代码如下:externintvar;intmain(void){intvar=10;return0;}它没有显示任何错误,并且给出的值与我

c++ - 为什么在父类中声明虚函数时出现 Unresolved external 错误?

我有这个父类:enumUI_STATE{UI_STATE_SPLASH_SCREEN,UI_STATE_LOGIN_SCREEN,UI_STATE_CHARACTER_CREATION_SCREEN,UI_STATE_CHARACTER_CHOOSE_SCREEN,UI_STATE_LOADING_SCREEN,UI_STATE_GAMEPLAY,UI_STATE_EXIT_REQUESTED,UI_STATE_UNKNOWN};[event_source(native)]classUserInterface{protected:MyGUI::Gui*mGUI;public:stati

c++ - 打开CV : unresolved external symbol

我知道这个问题是alloverplace,但将库目录添加到项目属性的魔术棒对我来说仍然不起作用。我关注了tutorialforVisualStudio(2013年我在这里)和environmentvariablesetup适用于opencv3.0beta。它与测试它!部分中的代码相同。这是vs中构建输出的标题:1>------Buildstarted:Project:OpenCVTest,Configuration:DebugWin32------1>opencv_core300d.lib(matrix.obj):errorLNK2019:unresolvedexternalsymbo

c++ - 错误 LNK2001 : unresolved external symbol "__declspec(dllimport) public: class QString & __thiscall QString::operator=(class QString &&)"

我非常想找到关于上述错误的任何信息。我正在使用visualstudio2010。当我在调试或发布中编译我的项目(32位)时,我收到以下消息:1>heterogeneous.obj:errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)public:classQString&_thiscallQString::operator=(classQString&&)"(_imp_??4QString@@QAEAAV0@$$QAV0@@Z)1>debug\nori.exe:fatalerrorLNK1120:1unresolvede

c++ - Unresolved external 噩梦

各位业内资深人士,我是一名大三学生,开始了我的第一个暑期编程实习,而且我已经不知所措了。我工作的公司从另一家公司购买了一个巨大的应用程序,该公司自90年代初以来一直在缓慢地扩展和修改它。该解决方案包含超过200,000行代码,分布在300多个文件中。据称,整个解决方案已按照ANSI-C++标准编写。代码几乎完全没有记录,而且大部分在我看来就像象形文字。最终,我的工作是将此代码移植到嵌入式Linux。目前,我的工作只是在WindowsXP上使用VisualStudio2008进行编译。今天,我遇到了链接器错误,例如:libcmtd.lib(sprintf.obj):errorLNK200

c++ - extern C 的 undefined reference

我正在尝试使用包含Aquila的Netbeans(g++)编译程序,anopensourcelibary.我关注了theinstallationinstructions.但是当试图编译一个小的测试程序时,我得到了这个错误Infunction`Aquila::OouraFft::fft(doubleconst*)':OouraFft.cpp:(.text+0x24f):undefinedreferenceto`cdft'OouraFft.h:#include"Fft.h"extern"C"{voidcdft(int,int,double*,int*,double*);//prototyp

c++ - 外部链接和 »extern "C"« block

我有一个intID,我想在C++中定义它并使其可用于C链接(为简单起见设计的案例):/*i.h*/#ifdef__cplusplusextern"C"{#endifexternintID;#ifdef__cplusplus}#endif这是一个使用int的C和C++程序:/*m.cpp*/#include"i.h"#includeintmain(){std::coutintmain(){printf("%d\n",ID);}现在我想知道的是extern"C"和/或extern的语法。以下是可以和不能定义intID的方式:/*i.cpp*///constintID=88;//noClin

c++ - 在 C++ 中对用户定义的类型使用 extern 关键字

我想对用户定义的类型使用extern关键字。这意味着我在一个文件中声明了对象并在另一个文件中定义了它。我读过extern关键字用于声明变量而不定义它。当程序被拆分成多个源文件并且每个源文件都需要使用全局变量时,extern关键字很有用。如果我在某个地方错了,请纠正我。这是我编写的程序,但不幸的是我做错了什么或遗漏了什么,所以我遇到了编译器错误。Prog1.cpp#includeusingstd::cout;classtest{public:voidfun();};voidtest::fun(){coutProg2.cpp#includeusingstd::cout;externtest

docker:Error response from daemon: driver failed programming external connectivity on endpoint mysql

在linux系统中运行docker容器中MySQL镜像中遇到了一些问题出现了如下报错:无法运行MySQL镜像,大概意思是来自守护进程的错误响应:驱动程序在端点mysql上编程外部连接失败(57f1ceb50a49feb0f5b187889af36633dff7aef9c58a29bd8a0c21d98ae5a427):启动userland代理时出错:侦听tcp40.0.0.0:3306:绑定:地址已在使用,就是端口号被占用了,所以我们需要结束这个进程。我们直接利用pkill-9MySQL命令结束掉进程,然后重新启动就可以了然后我们重新进一下容器镜像试一下,没有问题可以正常启动

c++ - 从类方法调用 "external"函数

我想在类方法中调用一个函数。该函数位于名为mergeSort.cpp的文件中。这是实现该类的.cpp文件的片段://otherincludes#include"mergeSort.cpp"//othermethodsvoidServers::sortSites(){mergeSort(server_sites.begin(),server_sites.end(),siteCompare);}//remainingmethods当我尝试编译时,我收到错误消息,指出无法找到mergeSort。我认为这是因为它试图调用Servers::mergeSort。我将如何调用外部函数?