精华内容
下载资源
问答
  • javascript 判断对象是否为undefined

    万次阅读 2017-10-25 13:52:09
    如何判断对象obj是否等于undefined类型? 方法一: if (typeof (obj) == "undefined") { //等于 undefined } 方法二: if (obj === undefined) { //等于 undefined } 1.null 表示无值, 2.undefined ...

    如何判断对象obj是否等于undefined类型?


    方法一:

    if (typeof (obj) == "undefined") {
             //等于 undefined  
    }


    方法二:

    if (obj === undefined) {
        //等于 undefined
    }

    1.null 表示无值,
    2. undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
     

    展开全文
  • 在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几

    在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几种可能出现的状况去排查,可有利于理清头绪,从而迅速解决问题。

    链接时缺失了相关目标文件

    首先编写如下的测试代码:

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test();
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    
    
    void test()
    {
        printf("just test it\n");
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test();
    
        return 0;
    }

    通过以下的命令,我们将会得到两个.o文件。

    $ gcc -c test.c  
    $ gcc –c main.c 

    随后,我们将main.o这个文件,编译成可执行文件。

    $ gcc -o main main.o
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    编译时报错了,这是最典型的undefined reference错误,因为在链接时发现找不到某个函数的实现文件。如果按下面这种方式链接就正确了。

    $ gcc -o main main.o test.o

    当然,也可以按照如下的命令编译,这样就可以一步到位。

    $ gcc -o main main.c test.c

    链接时缺少相关的库文件

    我们把第一个示例中的test.c编译成静态库。

    $ gcc -c test.c  
    $ ar -rc test.a test.o 

    接着编译可执行文件,使用如下命令:

    $ gcc -o main main.c 
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main-6ac26d.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    其根本原因也是找不到test()函数的实现文件,由于test()函数的实现在test.a这个静态库中,故在链接的时候需要在其后加入test.a这个库,链接命令修改为如下形式即可。

    $ gcc -o main main.c test.a

    链接的库文件中又使用了另一个库文件  (这个例子非常非常好, 我就是犯了这种错误!!!)

    先更改一下第一个示例中使用到的代码,在test()中调用其它的函数,更改的代码如下所示。

    
    // func.h
    
    #ifndef __FUNC_H__
    #define __FUNC_H__
    
    void func();
    
    #endif
    
    // func.c
    
    #include <stdio.h>
    
    void func()
    {
        printf("call it\n");
    }
    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test();
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    #include "func.h"
    
    
    
    void test()
    {
        printf("just test it\n");
    
        func();
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test();
    
        return 0;
    }

    我们先对fun.ctest.c进行编译,生成.o文件。

    $ gcc -c func.c  
    $ gcc -c test.c

    然后,将test.cfunc.c各自打包成为静态库文件。

    $ ar –rc func.a func.o  
    $ ar –rc test.a test.o 

    这时将main.c编译为可执行程序,由于main.c中包含了对test()的调用,因此,应该在链接时将test.a作为我们的库文件,链接命令如下。

    $ gcc -o main main.c test.a
    Undefined symbols for architecture x86_64:
      "_func", referenced from:
          _test in test.a(test.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    就是说,链接的时候发现test.a调用了func()函数,找不到对应的实现,我们还需要将test.a所引用到的库文件也加进来才能成功链接,因此命令如下。

    $ gcc -o main main.c test.a func.a

    同样,如果我们的库或者程序中引用了第三方库(如pthread.a)则在链接的时候需要给出第三方库的路径和库文件,否则就会得到undefined reference的错误。

    多个库文件链接顺序问题

    这种问题非常隐蔽,不仔细研究,可能会感到非常地莫名其妙。以第三个示例为测试代码,把链接库的顺序换一下,如下所示:

    $ gcc -o main main.c func.a test.a
    test.a(test.o): In function `test':  
    test.c:(.text+0x13): undefined reference to `func'  
    collect2: ld returned 1 exit status

    因此,在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免undefined reference的错误,完成编译链接。

    备注:在MAC上可以正常编译通过。

    定义与实现不一致

    编写测试代码如下:

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test(unsigned int c);
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    
    
    void test(int c)
    {
        printf("just test it\n");
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test(5);
    
        return 0;
    }

    先将test.c编译成库文件。

    $ gcc -c test.c 
    $ ar -rc test.a test.o

    main.c编译成可执行文件。

    $ gcc -o main main.c test.a
    ld: warning: ignoring file test.a, file was built for archive which is not the architecture being linked (x86_64): test.a
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main-f27cf1.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    链接出错了,原因很简单,test()这个函数的声明和定义不一致导致,将两者更改成一样即可通过编译。

    c++代码中链接c语言的库

    代码同示例一的代码一样,只是把main.c更改成了main.cpp。编译test.c,并打包为静态库。

    $ gcc -c test.c  
    $ ar -rc test.a test.o

    编译可执行文件,用如下命令:

    $ g++ -o main main.cpp test.a 
    Undefined symbols for architecture x86_64:
      "test()", referenced from:
          _main in main-7d7fde.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    原因就是main.cppc++代码,调用了c语言库的函数,因此链接的时候找不到,解决方法是在相关文件添加一个extern "C"的声明即可,例如修改test.h文件。

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void test();
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif

    展开全文
  • 联系人:石虎 QQ:1224614774昵称:嗡嘛呢叭咪哄 QQ群:807236138群称:iOS 技术交流学习群 ...Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_Person", referenced from: _OB...

         联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄

                                 QQ群:807236138  群称: iOS 技术交流学习群

                                QQ群:713799633   群称:iOS技术交流学习群-2

    一、报错详情

     

    Undefined symbols for architecture x86_64:

    "_OBJC_CLASS_$_Person", referenced from:

    _OBJC_CLASS_$_Dog in Dog.o

    objc-class-ref in ViewController.o

    "_OBJC_METACLASS_$_Person", referenced from:

    _OBJC_METACLASS_$_Dog in Dog.o

    ld: symbol(s) not found for architecture x86_64

    clang: error: linker command failed with exit code 1 (use -v to see invocation)

     

     

     

    二、解决方法

    1:

    2:在 build Phases 下操作如下

    3:添加类文件

     

    4:编译成功

     

     

     

    三、造成 bug 原因,以及如何避免

     

    1.造成 bug 原因是其它类没有参加编译造成的,这种原因又分成二种

     

    2.如何避免

    第一种:此框一定要勾选

     

    第二种:此框一定要勾选

     

    注意:如果忘记勾选,就在项目中的 Build Phases 中的 Compile Sources 中添加(详细前看图4)

     

    谢谢!!!

    本账号主要分享我成长过程中的各种心得感悟,包括技术总结, iOS、Swift 和 Mac 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!

    展开全文
  • 如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有可能会出现”undefined reference to `vtable for’…….”错误.解决方法: 把新创建...

    QT中,类要支持信号与槽机制,需要继承自QObject并在头文件开头添加Q_OBJECT宏.
    如果使用QtCreator创建类时,没有选择继承自QObject类或其子类,而在创建后手工修改继承自QObject并手工添加Q_OBJECT宏,则在编译时有可能会出现"undefined reference to `vtable for’…"错误.

    解决方法:
    方法一:重新执行qmake(2021,08.03);
    方法二:把新创建的类从项目中移除(主要不要从磁盘上删除),然后再添加进功能,QtCreator就会重新解析此类,再编译就不再会出现上述错误.
    方法三:qtcreator有时候会抽风,实在不行就人工删除编译的中间文件,重新编译;

    展开全文
  • undefined symbol问题的查找、定位与解决方法

    万次阅读 多人点赞 2019-07-16 14:29:54
    XXXX:symbol lookup error:/home/....../libpdfium.so:undefined symbol:CRYPT_MD5Generate 报错分析: 这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方动态库libpdfium.so中,于是从...
  • "undefined reference to" 问题解决方法

    万次阅读 多人点赞 2019-05-30 21:01:00
    (.text+0x13): undefined reference to `func’ 关于undefined reference 这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。 1. 链接时缺失了相关...
  • undefined symbol

    千次阅读 2018-08-22 08:58:16
    今天调试一个程序,需要调用其他模块的函数,代码就20行左右,编译也通过了,当放到机器上跑的时候,发生了crash,主要的原因是 **.so:undefined symbol: _ZN2wf7deta*(用*代替这个symbol),开始的时候用linux...
  • TypeError: Cannot read property '0' of undefined”错误,具体如下 【解决过程】: 首先Google翻一下: 见文之意:这里的意思就是模板在渲染时候,读取对象中的某个对象的属性值时,这个对象不存在,说通俗...
  • mac 上执行 sed 修改文件 undefined label

    万次阅读 2020-12-19 13:37:14
    undefined label
  • 变量undefined详解

    千次阅读 2018-07-07 20:02:56
    1.js有六种数据类型,分别是:undefined、null、string、boolean、number、object首先来说下undefined这个数据类型,可以分为三步进行详解。第一:是什么undefined是其中一种数据类型,它只有一个值,怎么说呢,使用...
  • JavaScript 打印结果时多出一个undefined/出现undefined 1.检查是否变量未初始化. 如下图,未初始化值就拿来使用,结果会出现undefined. var newStr; 修正方法为:定义的同时给变量赋一个值,如不需要值,可以赋空值...
  • console.log(null == null);//true console.log(null === null);... console.log(undefined == undefined);//true console.log(undefined === undefined);//true 为什么书上说它们是不相等的?...
  • 在利用ajax请求json数据后动态显示在表格上,然后发现无论从什么位置开始输出,表格第一行总是会出现undefinedundefined下面所有数据都是输出正确的。
  • js typeof undefined

    千次阅读 2019-05-14 15:55:12
    一、在js中判断undefined的最好办法是 用typeof。因为直接用 变量==undefined 会出现两种情况:1变量未定义,js报错 2变量为null 同样判断他为undefined typeof 的判断类型有几种,分别为:"number"、"string"、...
  • null和undefined区别

    千次阅读 2020-10-26 16:28:40
    在JavaScript中,null 和 undefined 几乎相等 在 if 语句中 null 和 undefined 都会转为false两者用相等运算符比较也是相等 console.log(null==undefined); //true 因为两者都默认转换成了false console.log...
  • myeclipse中,在写jsp代码后出现了Undefined attribute name (placeholder).和Undefined attribute name (autocomplete).问题 百度了一下,说是头文件出了问题 原来是: 改为: 问题解决! 原因: 在 ...
  • null==undefined和null!==undefined

    千次阅读 2015-05-08 21:04:09
    rt,在JavaScript中 ... 对于null==undefined,规范里规定了在“==”两端的变量类型不同时的判断规则,其中有一条规则便是当两端分别为null和undefined时返回true。  而对于第二个null==undefined返回false,
  • JavaScript数据类型 - Undefined类型

    千次阅读 2020-08-28 10:10:05
    Undefined 类型 Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其进行初始化时,这个变量的值就是undefined,例如: var message; console.log(message); //undefined var message = ...
  • Uncaught TypeError: Cannot read property 'search' of undefined 本来在JS里有search() 这个方法的,但是却一直出现了undefined这个错误,如下图 分析 原因是出在了字符串身上,没有对字符串是否为空进行判断...
  • TypeError: Cannot read property 'xxxx' of undefined的解决方法

    万次阅读 多人点赞 2019-10-12 16:42:19
    TypeError: Cannot read property ‘length’ of undefined
  • $ vue-cli-service build ⠋ Building for production... ERROR TypeError: Class ...TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (/root/deploy/ui/node.
  • typeof(undefined) == undefined 成立吗?

    万次阅读 2014-07-24 18:39:58
    1、问题:在Javascript中,typeof(undefined) == undefined 成立吗? 答案是不成立,全局函数 typeof()返回值类型为字符串类型,六个可能值: "number", "string", "boolean", "object" ,"function", 和 ...
  • vue中cannot read property of undefined的问题分析及解决

    万次阅读 多人点赞 2020-03-11 18:08:31
    vue项目中经常会遇到"cannot read property ‘某某某’ of undefined"的报错信息。下面我就简单分析下报错原因及解决方法 问题描述 info是服务端返回的数据,是一个对象。我们要做的就是把对象里的值放到页面显示,...
  • undefined control sequence 的含义是出现bai了非法的命du令。比如使用的命令,忘记加相应的zhi宏包;或者dao键入了错误的命令。 仅从你的这段代码看,是没有问题的,当然要求编译的方式是 latex,而不能用 pdflatex...
  • js判断undefined类型

    万次阅读 2018-11-09 09:00:51
    js判断undefined类型 if (reValue== undefined){ alert(“undefined”); } 发现判断不出来,最后查了下资料要用typeof 方法: if (typeof(reValue) == “undefined”) { alert(“undefined”); } ...
  • 编译protobuf的 .pb.go文件时报错,如 undefined: grpc.SupportPackageIsVersion6 或undefined: grpc.ClientConnInterface 和这个贴子的表现一样,https://github.com/grpc/grpc-go/issues/3347 解决办法 方法1...
  • undefined reference to 'floor'/undefined reference to `& undefined reference to 'pow'/undefined reference to `&   今天用linux编译一个程序的时候遇到了一个小问题,如标题所示,先说解决方法 ...
  • jinja2.exceptions.UndefinedError: ‘form’ is undefined 创建flask项目使用jinja2的时候出现了如下一样的错误 经过查阅资料发现 原来是两个视图函数引用了同一个模板,模板中使用了jinja2,而引用的视图函数...
  • 爬坑记录1:-undefined undefined reference to *** openssl 无法链接 /usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `PKCS12_PBE_add@OPENSSL_1.0.0' /usr/lib/x86_64-linux-gnu/libc...
  • JS中出现undefined和null情况

    千次阅读 2020-07-04 17:34:18
    出现undefined的情况 创一个变量不赋值,获取这个变量是undefined 获取对象里的属性名所对应的属性值获取不到,是undefined 函数里,实参没有给形参变量赋值,那就是undefined 函数里,没有return(没有返回值),...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 600,500
精华内容 240,200
关键字:

undefined