问题标签 [undefined-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
undefined-reference - makefile 或头文件的简单问题?
我有一个使用以下内容编译的程序:
Attribute.cpp 包含它的头文件 Attribute.h,而 Attribute.cpp 包含 Attribute.h 的所有实现。
Entity.cpp 包括头文件 Entity.h 和 Attribute.h,因为 Entity.cpp 使用 Attribute 类。
main.cpp 文件包含一个名为 XML.h 的头文件,它只包含 Attribute 和 Entity 头。
问题是我不断获得对 main.cpp 和 Entity.cpp 中使用的函数的未定义引用。
我知道这些函数是定义的,因为它们的实现写在相应的 cpp 文件中,即。Entity.cpp 和 Attribute.cpp。
谢谢。
actionscript-3 - Actionscript 3 字典为刚刚在不同类中设置的键返回未定义/空值
我正在根据给定的 XML 元素将显示对象渲染到舞台,如您在此处看到的:
页面渲染器.as
因此,每个 XML 元素都有一个关联的呈现形状。如果您有 XML 元素,则可以像这样访问形状: var shape:DisplayObject = curElements[xmlElement];
这在同一个班级中工作正常。
但是,现在我还有 ElementSelector 类,它处理形状的选择并将对形状所做的操作反映到 xml 元素。为此,需要在单击形状时获取 XML 元素:
元素选择器.as
我添加了 StageClicked 事件函数只是为了让您了解我的过程是如何工作的。该功能本身工作正常。问题似乎出在 select() 方法中。
现在,奇怪的是,curElements[element] 返回 undefined 而 render 返回 null。
我试图像这样调试它(在选择方法的底部):
它返回:
为什么会这样?如果 a === b,那么 dic[a] === dic[b],对吗?好吧,显然不是。
所以,钥匙真的在那里……它和它被设置的钥匙一样。
为什么它不返回关联显示对象?
c++ - C++ 链接器错误,对应从共享对象引用的项的未定义引用
我正在构建一个名为 physgameengine 的库来帮助构建游戏。这个游戏库链接了几个库,包括:Ogre3d、Bullet Physics 和 SDL,它们位于库文件 libOgreMain-1.6.5.so、libBulletCollision.a、libBulletDynamics.a、libBulletSoftBody.a、libSDL-1.2.so.0 中. 这个库/共享对象似乎在 Ubuntu 9.10 中使用 GCC 和 Code::blocks 构建得很好。它确实在带有 mingw 和 Code::blocks 的 Windows 上构建得很好。
在 Windows 中,我可以使用我构建的库制作可以编译/链接的游戏,这些程序运行并完全按照我的预期运行。在 Ubuntu 中,当我尝试编译/链接使用这个库的游戏时,我得到了很多未定义的引用错误。但是对我构建的库中的函数或对象没有影响,而是对我的库调用的项目。这是我得到的错误的一个例子。
Windows 和 Linux 之间的大部分代码是相同的,它们似乎具有等效的编译/链接器设置。但是 Linux 游戏似乎链接到我的库应该链接的原始库。到底是怎么回事?关于如何解决它的任何想法?
c++ - C ++:对单例类中的实例的未定义引用
我目前正在尝试将工厂实现为单例。我实际上使用了单例模式的教科书示例。这是.h文件:
这是 .cpp 文件:
代码编译,但我得到一个链接器错误:
../../lib/oxygen/liboxygen.so.3.2.4:未定义对“oxygen::ImpFactory::mInstance”的引用
目前这让三名学生难倒。有任何想法吗?
qt - 尝试将 Qt 应用程序与我的静态库链接时未定义的引用
我有一个用 MinGW 构建的静态库,我正在尝试从 Qt 应用程序链接到该库。我不断收到由库中的一个目标文件引起的链接器错误。这个文件实际上声明了几个 Boost 头文件,一个用于 shared_ptr,另一个用于使类不可复制。我相信使用这个增强功能是导致问题的原因,但我不知道为什么。如果我注释掉 Qt 应用程序中使用文件中定义的类的类,则 Qt 应用程序链接正常。这是输出的错误部分:
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x10a): 对 `__gxx_personality_sj0' 的未定义引用
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x12f): 未定义引用`_Unwind_SjLj_Register'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x203): 未定义引用`_Unwind_SjLj_Resume'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x20e): 未定义引用`_Unwind_SjLj_Unregister'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x226): 未定义引用`__gxx_personality_sj0'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x24b): 未定义引用`_Unwind_SjLj_Register'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x31f): 未定义引用`_Unwind_SjLj_Resume'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text+0x32a): 未定义引用`_Unwind_SjLj_Unregister'
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text$_ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_[boost::detail::shared_count::shared_count(foo::foo_SomeClassImpl*)] +0xc): 对 `__gxx_personality_sj0' 的未定义引用
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text$_ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_[boost::detail::shared_count::shared_count(foo::foo_SomeClassImpl*)] +0x31): 对 `_Unwind_SjLj_Register' 的未定义引用
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text$_ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_[boost::detail::shared_count::shared_count(foo::foo_SomeClassImpl*)] +0xfb): 未定义对 `_Unwind_SjLj_Resume' 的引用
C:\blah\build\windows\mingw\libfoo.a(foo_ctis.cpp.obj):foo_ctis.cpp:(.text$_ZN5boost6detail12shared_countC1IN3foo25foo_SomeClassImplEEEPT_[boost::detail::shared_count::shared_count(foo::foo_SomeClassImpl*)] +0x106): 未定义引用 `_Unwind_SjLj_Unregister' collect2: ld 返回 1 退出状态
另一件要提到的事情是我在这个类中使用了一个指向实现的指针。任何帮助将非常感激。
已解决:我发现在我的 MinGW 提供 GCC 版本之前,我的路径中有一个旧版本的 GCC。旧版本包含在我不久前的一个 GNUStep 包中。我认为这些不同版本的配置导致了问题。感谢 kemiisto,他在解决问题方面走在了正确的轨道上。
curl - 使用 curlpp 编译时出错
我尝试编译第一个简单示例,并查看编译错误:未定义的对 `curlpp::Cleanup::Cleanup()' 的引用
在我写的链接器选项curl-config --libs
中,在命令行中
$ curl-config --libs
-lcurl
我究竟做错了什么?
c++ - 未定义的引用
我正在执行 opengl/qt3 分配,但遇到了未定义的引用错误:
但编译器抱怨行 mesh.load("ball.obj") 作为未定义的引用......这是怎么回事?先感谢您!
c++ - MinGW/G++/g95 链接错误 - libf95 undefined reference to `MAIN_'
总而言之,我的问题在于在 C++ 应用程序中编译 g95 对象。实际上,我正在为一个旧的 fortran 程序构建一个接口。对于这个任务,我使用 wxWidgets GUI 库,并在必要时调用 fortran 子例程。一开始,我正在开发整个项目,使用 gfortran(GCC 附带)编译我的 fortran 文件,并通过 g++ -o... 命令将它们与我的应用程序链接。一切正常,但我的 fotran 子程序计算的一些数值返回了 NAN 值。做了一些研究,我意识到用带有 -m32 标志的 gfortran 编译我的 fortran 文件会产生这个 NAN 值问题。尽管使用 -m64 标志进行编译,但我的代码运行良好。这里唯一的麻烦是我的应用程序应该是 32 位的,然后我尝试了另一个编译器。在这里,我找到了 g95 Fortran 编译器,它编译我的 fortran 代码并在 32 位环境下提供正确的输出。但是当我试图将这些 g95 对象链接到我的程序中时,我看到以下错误:
我已经阅读了与 C++ 集成的 g95 手册,实际上我在下面调用这些函数来控制 fortran 环境: void g95_runtime_start(int argc, char *argv[]); 无效 g95_runtime_stop();
我还将 g95 Fortran 运行时库 libf95.a 和 libgcc.a 包含在我的链接器命令中。最后,我没有实现 main 方法,因为这是由 wxWidgets 管理的,而我的 fortran 子例程不能有 main 函数,因为这是一个调用 fortran 函数的 C++ 程序。
你们中的一些人可以帮我解决这个问题吗?如何解决这个未定义的对 MAIN__ 问题的引用?任何想法将不胜感激。
c++ - 未定义的引用
每次我尝试编译时都会收到此错误消息,但我无法找出问题所在。任何帮助将不胜感激:
代码:
我正在做我认为我应该做的一切。main.cpp 还没有完成,只是想先让 add 函数工作。任何帮助将不胜感激。
c++ - 在 Linux 中使用库文件
我正在尝试/lib/libproc-3.2.6.so
在我的 Ubuntu 发行版中使用库中的一些函数。
我已经下载并安装了头文件,它们在我的源文件中定义。
目前,这就是我想做的所有事情,只是对于初学者......
但我收到以下编译器错误:
我知道我可能对我用来编译它的命令做错了,但由于缺乏经验,我不确定我做错了什么。这是我用来编译我的 cpp 文件的 g++ 命令:
有人可以给我一些关于我哪里出错的指示。