static报错 Undefined symbols for architecture x86_64
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static报错 Undefined symbols for architecture x86_64相关的知识,希望对你有一定的参考价值。
上代码:
头文件:
#ifndef __xx__
#define __xx__
#include <stdio.h>
class xx
static int x;
static int getX();
;
#endif
对应的源文件:
#include "xx.h"
int xx::getX()
return x;
报错:
Undefined symbols for architecture x86_64:
"xx::x", referenced from:
xx::getX() in xx.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这么简单一个static成员的例子就报错了。。。5555,求解啊
在Mac OS X中,或者其他类Unix系统,当使用static之类的C++时,如果使用gcc编译,则会报错Undefined symbols for architecture x86_64。
解决方案:使用g++替换gcc命令,编译即可。
参考技术A 你是用什么语言写的?好吧我默认你是C++了,因为在C语言中是没有类(Class)的.
首先,你并没有把主函数发上来,没有主函数程序是无法成功编译的,所以第一点:加上主函数;
第二,似乎静态变量无法在另一个编译文件中成功编译,所以作如下更改:
1. 删除源文件中全部代码
2. 头文件中的"static int getX();"修改为:
"static int getX()return x;"
目前在我的电脑中已经通过编译,本人也是新手,说的不对还望指正.
希望我的回答能帮到你.望采纳!
(转)xcode报错:Undefined symbols for architecture x86_64
操作:直接引入第三方文件
报错如图:
原因:引入的第三方文件未被编译
解决一:下图配置处添加要编译的文件
解决二:使用 Add Files to 项目 依次添加所有文件
重新编译,成功。
以上是关于static报错 Undefined symbols for architecture x86_64的主要内容,如果未能解决你的问题,请参考以下文章
(转)xcode报错:Undefined symbols for architecture x86_64
关于 报错 undefined symbol: php_json_serializable_ce
一键安装lnmp报错 pycurl.so: undefined symbol: CRYPTO_set_locking_callback
symbol lookup error *** , undefined symbol 错误
微信SDK导入报错 Undefined symbols for architecture i386:"operator delete[](void*)", referenced f
[C++]共享内存cmake报错undefined reference to symbol ‘shm_unlink@@GLIBC_2.2.5