问题标签 [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 - 在函数`_start'中:init.c:(.text+0x30): undefined reference to `main'
我正在开发一个包含大约 30 个源文件 (.c) 的 C 项目。我正在使用 GNU 工具在 Ubuntu 上运行的 32 位微控制器(i.MX515)上构建这个项目。
编译阶段成功完成,但是当链接过程开始时,我收到此错误(对于问题结束时的完整错误):
我有main()
一个简单的功能printf()
。
我用于链接的 Makefile 行看起来像这样。
帮助!!!
问候
维克拉姆
完全链接错误
c - 哦,不,不是另一个未定义的参考问题!
不幸的是。
我编译了我的共享库,链接器没有抱怨找不到它,但我仍然得到未定义的引用错误。考虑到我可能做错了什么,我做了一些研究,发现这个很好,简单的演练:
http://www.adp-gmbh.ch/cpp/gcc/create_lib.html
我已经遵循了这封信,但我仍然得到:
这是非常简单的东西,所以出了什么问题?!我的设置中是否有需要检查/调整的内容?
GCC 4.3.2 Fedora 10 64 位
c++ - 用 C++ 编译的 C 代码:未定义的引用
我有一个小程序,可以毫无困难地使用 GCC 和 ICC 进行编译,但我也希望代码可以与 G++ 和 ICPC 一起使用。我试图添加这个:
一开始是这样的:
在所有头文件的末尾,但我仍然收到几个“未定义的对“...”的引用”错误。
c - 使用头文件时出现未定义符号错误
我收到以下错误,我一生都无法弄清楚我做错了什么。
主.c:
wtf.h:
wtf.c:
现在,如果我在头文件中包含整个函数而不仅仅是签名,它会很好地符合,所以我知道 wtf.h 被包含在内。为什么编译器看不到 wtf.c?还是我错过了什么?
问候。
stl - 实例化 C++ 模板函数
我面临一些“未定义的引用”错误的问题。我可能无法发布代码,但声明和调用函数的方式如下:
声明:
我将上述函数调用如下:
上述语句(我在其中调用函数)被标记为错误。这些是消息:
对`int is_voiced(std::deque >&, int, int, double, int, short&, long) 的未定义引用
对“int pitch_detect(std::deque >&, int, int)”的未定义引用
非常欢迎解码上述错误的任何帮助。谢谢,斯里拉姆
编辑:上述函数在单独的头文件和相应的 C++ 文件中定义。当我尝试编译它们并创建一个目标文件时,我没有遇到任何问题。这些错误出现在链接器阶段。
c - 链接时间“未定义的引用”错误
我很难编写makefile。我有使用extern
变量的经验,当我在不使用 makefile 的情况下构建项目时,我绝对没有错误,我可以运行程序。但是从我编写生成文件来构建项目的那一刻起,我就遇到了undefined reference to
错误。
我有超过 3 个文件,但为简单起见,我将在此处使用 3 个文件来解释设置。
使用 makefile 时,我undefined reference to
在指向 File1.c 和 File2.c 的链接时间出现错误?
我是否犯了 Eclipse 自行修复的任何错误(当不使用 makefile 时)以及当我使用 makefile 时会出现哪些错误?
我的最终生成文件看起来像这样 -
OBJ1 = 算法/main.o 算法/File1.o 算法/File2.o
c - 链接静态库时获取未定义的引用
我用 GCC 制作了一个静态库。图书馆的建设还可以。
当我使用它时,链接器会在某些函数上引发未定义的引用错误。但是nm
说函数是在静态库中定义和导出的(用 T 标记)。我知道我需要将库放在需要它们的模块之后的链接顺序,所以这不是问题。
静态库是从 3 个 C 文件构建的。Ac Bc 和 Dc D 模块依赖于 A 和 B(包括它们的标题)。
当我使用 A 和 B 中的函数时没问题,但是当我尝试使用 DI 中的任何函数时,它们会出现未定义的引用错误。
如果我在 A 或 B 中移动这些功能,它就可以工作。但如果它们在 D 模块中,则不是。
我完全不知道发生了什么或我忽略了什么。
我正在使用 Code::Blocks 并使用纯 C 文件。
c++ - 为什么我的 .cpp 文件没有被处理?
我正在尝试编译(制作)游戏源,并且似乎我的 gRace.cpp 文件被排除在外,因为它不断为我的所有 gRace 类方法返回未定义的引用错误。
我通过以下方式将 gRace.h 文件包含在两个文件中:
关于可能导致它不被处理的任何想法?
makefile - 在链接步骤期间在 Makefile 中使用 SDCC 时出现问题
即使在链接步骤中存在未定义的参考错误,小型设备 C 编译器 (SDCC) 也会生成 ihx(英特尔十六进制)文件。在 Makefile 中使用 SDCC 时,此行为会导致问题,因为如果您将 ihx 文件设置为您的 make 目标,则 make 无法知道先前的链接尝试已失败。
当链接期间存在未定义的引用时,有没有办法告诉 SDCC 抑制 ihx 输出?如果没有,最好的解决方法是什么?(我已经想到了一个)。
另外,如果有人知道的话,我对为什么SDCC 是这样设计的很感兴趣。
这是问题的一个例子:
你有一个名为 test.c 的文件,它调用了一个未定义的函数:
您有一个简单的 Makefile 用于从 test.c 构建 test.ihx:
您第一次尝试编译 test.c 并失败:
您尝试通过更改不依赖于 ihx 的内容(例如 Makefile)来解决问题,然后尝试再次编译:
但是 make 不会尝试编译它,因为 SDCC 已经创建了 ihx 文件。
c - gcc 不会编译和运行 MySQL C 库
~$ gcc -o mysql-test MySQL-Test.c
我试图从终端执行此测试程序,但收到以下错误消息:
/tmp/cceEmI0I.o:在函数main': MySQL-Test.c:(.text+0xa): undefined reference to
mysql_get_client_info'
怎么了?我的系统是ubuntu