问题标签 [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.
c - 对“罪”的未定义引用
我有以下代码(简化为这个问题的基本知识):
编译时gcc test.c
出现以下错误,我不知道为什么:
但是,我编写了sin
从main
函数内部调用的各种测试程序,并且它们运行良好。我必须在这里做一些明显错误的事情 - 但它是什么?
c++ - 无法在 Windows 上构建 OpenCL 程序
我在 Linux 上编写了一个简单的“无所事事”OpenCL 应用程序(使用 C++,但使用 C API)来获取有关 OpenCL 速度的一些数据。它编译得很好并且运行没有错误。我没有支持 OpenCL 的显卡,但我需要在 GPU 上进行测试。我正在尝试使用 NVIDIA 的 CUDA 工具包提供的 OpenCL 实现在我朋友的 Windows 7 64 位计算机上构建应用程序。
当我尝试链接到 CUDA\x64 中的 OpenCL.lib 文件时,我得到程序中每个 OpenCL 调用的未定义引用(使用标准 C API)。当我链接到 system32 目录中的 OpenCL.dll 时,也会发生同样的事情。如果我链接到 CUDA Toolkit 附带的 win32 库,我不会收到错误,但 OpenCL 无法获取平台。我在链接时获得的所有未定义引用在符号名称的末尾都有一个@20 或@46 或一些随机数。我对 Windows 开发不够熟悉,不知道如何解决这个问题。我的问题可能是什么?
我为任何新手道歉。感谢您的任何回答!
android - 使用 JNI 访问我的共享库时出现“未定义的引用”
我正在尝试使用 JNI 构建一个版本的Botan(用于加密算法的库)以在 Android 上运行一些本机 C++ 程序。
我已经使用 NDK 工具链(NDK R5b)成功地创建了一个 libbotan.so,没有任何错误。但是当我从我的 Android 项目(示例)编译我的源文件(exampleError.cpp)时,我收到以下错误:
这是我的 exampletError.cpp:
这里是对应的Java类createError.java: private native void simpleTestCall();
在这里你可以看到 Android.mk:
最后,但并非最不重要的 Application.mk:
注:JNI文件夹结构如下:Android.mk Application.mk botan/botan_all.h sources/botan_all.cpp exampleError.cpp
我还检查了 libbotan.so 的内容,如下所示:
但我不知道在这个输出中是否可以看到任何错误。此外,我还在网上搜索了这个错误,例如here。不幸的是,我还不能解决我的问题。
所以我的问题是:我做错了什么?
c - 对 sqrt(或其他数学函数)的未定义引用
我有这个简单的代码:
在标题中我有:
但是应用程序仍然说未定义的引用sqrt
。你看到这里有什么问题吗?看起来一切都应该没问题。
ios - 将符号添加到静态库的外部名称目录
我对由特定静态库生成的符号列表otool
和nm
为特定静态库生成的符号列表的差异感到困惑。我正在尝试链接一些静态库以创建最终的可执行文件,但链接器抱怨Undefined symbols: "_main", referenced from: _main$non_lazy_ptr in crt1.o
. 如果我nm
在其中一个库 ( libext.a
) 上执行此操作,我会看到它_main
是在一个名为main.o
. 但是如果我在同一个otool-s
库上做一个,我会发现存档部分中_main
没有它。__.SYMDEF
我如何强制_main
包含在此部分中?在图书馆做事ranlib -c
没有帮助。
c++ - 未定义的引用
当我为链表编译代码时,我得到了一堆未定义的引用错误。代码如下。我一直在编译这两个语句:
也
我真的不明白为什么我会收到这些错误,因为我对 C++ 中的类真的很生疏。我真的可以使用一些帮助。
线性节点.h:
线性节点.cpp:
链表.h:
链表.cpp:
测试.cpp:
c++ - C++:对'FMOD::X'的未定义引用
找了各种声音API库后,我决定暂时使用FMOD。
问题是,每当我尝试编译其中一个代码示例时,都会出现以下错误:
我正在使用的代码示例是这样的:
我正在使用最新版本的 FMOD,并且正在使用带有 GNU GCC 编译器的 Code::Blocks IDE(版本 10.05)。该项目属于“控制台应用程序”类型。fmodex.dll 文件位于我项目的文件夹中。我正在使用 Windows XP 32 位 SP3。
我已经链接到该libfmodex.a
库并尝试链接到它那里的其他库,但这并不能解决问题。
因此,我的问题是,我需要做些什么来阻止这些错误的发生?就像我在使用其他库之前遇到类似的“未定义对 x 的引用”错误一样。我刚刚忘记在 Code::Blocks 中链接到它们,一旦我这样做了,它们就会起作用。
请说您是否需要有关代码等的更多信息。
c++ - 来自虚函数的未定义引用
我有一个像这样的课程:
基数.h
Ib Base.cpp,我定义了 GetDetail。
我有一些派生类从它们自己的实现 getInfo() 中调用 GetDetail。
当我从 Base.h 中的虚函数定义中删除对 getInfo() 的调用时,代码将通过派生类自己的实现进行编译。
当我使用从内联虚函数调用 GetDetail 的虚函数进行编译时,链接失败并显示:
未定义对 GetDetail 的引用。
有任何想法吗?
c++ - 有没有办法处理模板函数的未定义引用错误而不在标头中实现它们?
我希望问题很清楚。如果不在头文件中实现模板函数,是否有另一种方法不会出现未定义的引用错误?提前致谢。
c++ - 抽象类(Qt)的“未定义的vtable引用”
我正在编写一个用于将表达式解析为树结构的库,并且我有一个抽象类型QCExpressionNode
作为我的基类。它看起来像这样:
当我编译一些适用于子类(、、、等)的测试(QtCreator 中的另一个项目QCConstantNode
)QCVariableNode
时QCBinaryOperatorNode
,链接器给了我一个 QCExpressionNode 的“未定义的 vtable 引用”错误。我究竟做错了什么?