【Qt开发】编译时报"undefined reference to"问题的解决方案

1. 出现原因分析

  Undefined reference to 错误:这类错误是在连接过程中出现的,可能有两种原因∶

  (1)是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接;

  (2)干脆还没有定义,这需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体。

2. 解决方案

最近使用Qt进行开发,出现了多条 Undefined reference to 报错的问题。我使用了extern来扩展变量的使用域,我在mainwindow.h中对变量进行声明,而在另 外的用到该变量的两个文件进行使用,但是忘记加入对变量的定义导致出错。这种出错原因是上述的第(2)种。

  因此:

  在使用到该变量的.c或者.cpp文件中,以extern int Name;声明该变量。

 在需要对该变量赋值的.c或者.cpp文件中,以int Name定义该变量。

  

原文地址:https://www.cnblogs.com/CSGO-416482145/p/qtcreator-errors.html

时间: 2024-07-30 06:58:36

【Qt开发】编译时报"undefined reference to"问题的解决方案的相关文章

arduino开发过程中编译问题undefined reference to `setup'的解决办法

今天遇到这个问题,搜了很久也没有找到真正的答案. 后来灵光乍现,原来是出现了相同的目标文件,既有maze.h和maze.cpp,又有maze.ino,于是编译连接的时候就会出现ld错误了. 将maze.ino重命名为任意不重复的名字,重新编译,问题解决! yeah! arduino开发过程中编译问题undefined reference to `setup'的解决办法

[ c++] cmake 编译时 undefined reference to `std::cout' 错误的解决方案

cmake ..  和 make 之后,出现如下错误 Linking CXX executable ../../../bin/ModuleTest CMakeFiles/ModuleTest.dir/tmp.cpp.o: In function `main': /ModuleTest/tmp.cpp:4: undefined reference to `std::cout' tmp.cpp 内容如下 1 #include <iostream> 2 3 int main(){ 4 std::co

devc++编译时 undefined reference to `__imp_WSAStartup&#39;

socket编程时遇到的问题: devc++编译时 undefined reference to `__imp_WSAStartup' 原文地址:https://www.cnblogs.com/qy-blogs/p/9287145.html

Android NDK编译之undefined reference to &#39;JNI_CreateJavaVM&#39;

利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: undefined reference to `JNI_GetDefaultJavaVMInitArgs' XXX: undefined reference to `JNI_CreateJavaVM' 看了网上很多人的解答,基本都是添加libjvm.so或者libnativehelper库.尝试下,

Android编译错误——undefined reference to

[错误描述] 未定义引用 提示如下:bootable/recovery/minzip/Zip.c:1122: error: undefined reference to 'selabel_lookup'bootable/recovery/minzip/Zip.c:1123: error: undefined reference to 'setfscreatecon'bootable/recovery/minzip/Zip.c:1129: error: undefined reference to

QT开发编译问题备忘

编译<Qt及Qt Quick开发实战精解> 的代码,编译出错,提示: Cannot find file: E:\学习资料\QT\<Qt及Qt Quick开发实战精解>代码\src\3\3-3\myPlayer\myPlayer.pro. 16:10:29: 进程"C:\Qt\Qt5.5.0\5.5\mingw492_32\bin\qmake.exe"退出,退出代码 2 . Error while building/deploying project myPlay

undefined reference to `sin&amp;#39;问题解决

作者:zhanhailiang 日期:2014-10-25 使用gcc编译例如以下代码时报"undefined reference to `sin'": #include <stdio.h> #include <math.h> #include <stdlib.h>   main () { double a = sin(1); exit (0); } [root@~/wade/codeReview/learningc/9]# gcc -o timet

undefined reference to `sin&#39;问题解决

作者:zhanhailiang 日期:2014-10-25 使用gcc编译如下代码时报"undefined reference to `sin'": #include <stdio.h> #include <math.h> #include <stdlib.h>   main () { double a = sin(1); exit (0); } [root@~/wade/codeReview/learningc/9]# gcc -o timetes

ubuntu下调试ffmpeg程序出现undefined reference to pthread_once ,undefined reference to uncompress错误

Ubuntu(版本16.04)下默认配置编译Ffmpeg(版本4.1.3configure 添加选项--enable-threads),将编译好的ffmpeg库添加到程序 中进行编译出现undefined reference to pthread_once ,undefined reference  to uncompress 等错误,提版本示pthread_once 未定义原因是编译链接时找不到pthread_one.解决的方法是安装pthread并将它链接到程序.具体安装的命令是: sudo