首页 数据库 mysql教程 error: undefined reference collect

error: undefined reference collect

Jun 07, 2016 pm 02:59 PM
amp error reference undefined

作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 编译动态链接库时,出现了这样的错误: error: undefined reference to 'xxx)' collect2: ld returned 1 exit status 属性1. 我能肯定这与要调用动态库的Java文件没有任何

作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591

error: undefined reference collect

编译动态链接库时,出现了这样的错误:

error: undefined reference to 'xxx)' collect2: ld returned 1 exit status

属性1.

我能肯定这与要调用动态库的Java文件没有任何关系,因为我把Java文件删除然后重新编译也是这样的错误。

属性2.

我也能肯定这绝不是因为我没有把要用到的头文件包括进来,而且我试着将另一个函数的头文件注释掉,提示的错误是:

error: 'xxxxx' was not declared in this scope

属性3.

当我把函数名称更改使其前后名称不一致时也提示错误:

error: 'xxxxx' was not declared in this scope

属性4.

甚至我把直接把这个函数写进要调用它的文件里,仍然是这样的错误。

属性5.

已确定不是Android.mk文件的问题

 

什么情况下会产生“error: undefined reference to 'xxx)' collect2: ld returned 1 exit status“的错误呢?不明白这个函数为什么这么特殊,唯独它出现这样的错误。

明明定义了这个函数,却出现了“error: undefined reference to”的错误?怪哉error: undefined reference collect

方案1.

在网上查到这样一种解决方案,它是这样描述的:

在android.mk中加入  LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

也就是说,对于找不到的函数,编译器将忽略它。

我勒个去,我写这个函数就是要它干活的,你忽略它,虽然编译时过关了,但是我调用这个函数时不还是找不到吗?我还不如直接把这个函数删掉。

方案2.

经过我仔细核对,层层排除,终于发现了问题所在。再次还原一下错误提示

 in function render:/BitmapPlayerActivity.cpp:35: error: undefined reference to 'BrightnessFilter(unsigned short*, long, unsigned char)'
collect2: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libAVIPlayer.so] Error 1

同时贴出出现错误的函数所在的文件BitmapPlayerActivity.cpp:

#ifdef __ARM_NEON__
	void BrightnessFilter(
		unsigned short* pixels,
		long count,
		unsigned char brightness)
	{
          	//具体内容忽略
	}

	static void neonBrightnessFilter(
		unsigned short* pixels,
		long count,
		unsigned char brightness)
	{
         	//具体内容忽略
	}
#endif
登录后复制

你看出问题所在了吗?注意第01行和17行的宏#ifdef __ARM_NEON__与#endif,它们配合起来根据变量__ARM_NEON__之前是否被定义而选择编译它们之间的代码;不行的是,本工程中__ARM_NEON__未被定义,故函数BrightnessFilter(unsigned short*, long, unsigned char)未被编译,所以才出现了error: undefined reference的错误。

PS1.

需要注意的是,在同一个cpp文件里如果函数之间存在调用关系,一定要把被调用的函数写在要调用它的函数的前面,例如下面的文件编译时会提示如下错误:

jni/BrightnessFilter.cpp: In function 'void BrightnessFilter(short unsigned int*, long int, unsigned char)':
jni/BrightnessFilter.cpp:7:52: error: 'genericBrightnessFilter'was not declared in this scope
make.exe: *** [obj/local/armeabi/objs/AVIPlayer/BrightnessFilter.o] Error 1

BrightnessFilter.cpp:

#include "BrightnessFilter.h"

void BrightnessFilter(unsigned short* pixels,
		long count,
		unsigned char brightness)
{
		genericBrightnessFilter(pixels, count, brightness);//调用了genericBrightnessFilter(),但函数genericBrightnessFilter()在BrightnessFilter()函数之前并没有实现体,所以出错
}

static void genericBrightnessFilter(
		unsigned short* pixels,
		long count,
		unsigned char brightness)
{
	//函数体没有引用其他函数,具体内容略
}
登录后复制

PS2.

jni/Android.mk:11: *** commands commence before first target.  Stop.
这是因为Android.mk中LOCAL_SRC_FILES 加载文件时斜杠后有空格,删除即可。在另一处也可能出现类似错误,请参看Android编译ffmpeg遇到的问题、解决方法、相关文件和编译全过程

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP Fatal error: Call to undefined method PDO::prepare() in的解决方法 PHP Fatal error: Call to undefined method PDO::prepare() in的解决方法 Jun 22, 2023 pm 06:40 PM

PHP作为一种流行的Web开发语言,已经被使用了很长时间。PHP中集成的PDO(PHP数据对象)类是我们在开发Web应用程序过程中与数据库进行交互的一种常用方法。但是,一些PHP开发者经常遇到的问题是,当使用PDO类与数据库进行交互时,他们会收到这样的错误:PHPFatalerror:CalltoundefinedmethodPDO::prep

在Vue应用中使用axios时出现“Uncaught (in promise) Error: Request failed with status code 500”怎么办? 在Vue应用中使用axios时出现“Uncaught (in promise) Error: Request failed with status code 500”怎么办? Jun 24, 2023 pm 05:33 PM

在Vue应用中使用axios是十分常见的,axios是一种基于Promise的HTTP客户端,可以用于浏览器和Node.js。在开发过程中,有时会出现“Uncaught(inpromise)Error:Requestfailedwithstatuscode500”的错误提示,对于开发者来说,这个错误提示可能有些难以理解和解决。本文将会探讨这

解决C++代码中出现的'error: incomplete type is not allowed”问题 解决C++代码中出现的'error: incomplete type is not allowed”问题 Aug 26, 2023 pm 08:54 PM

解决C++代码中出现的“error:incompletetypeisnotallowed”问题在C++的编程过程中,有时候会遇到一些编译错误,其中一个常见的错误是“error:incompletetypeisnotallowed”。这个错误通常是由于在使用不完整的类型进行操作时引起的。本文将介绍这个错误的原因,并提供几种解决方法。首先,我

0271:real time clock error开不开机怎么办 0271:real time clock error开不开机怎么办 Mar 13, 2023 am 11:30 AM

“0271:real time clock error”开不开机的解决办法:1、按一下F1,在出现的界面中,将选项栏转到第三项“Date/Time”;2、将系统时间手动修改成现在的时间;3、按F10,在弹出的对话框中,选择yes;4、重新打开笔记本即可正常开机。

解决C++代码中出现的'error: expected initializer before 'datatype'”问题 解决C++代码中出现的'error: expected initializer before 'datatype'”问题 Aug 25, 2023 pm 01:24 PM

解决C++代码中出现的“error:expectedinitializerbefore'datatype'”问题在C++编程中,有时候我们在编写代码时会遇到一些编译错误,其中一种常见的错误是“error:expectedinitializerbefore'datatype'”。这个错误通常在变量声明或函数定义中发生,可能导致程序无法正确编译或

如何解决PHP Warning: fopen(): failed to open stream: No such file or directory 如何解决PHP Warning: fopen(): failed to open stream: No such file or directory Aug 19, 2023 am 10:44 AM

如何解决PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory在使用PHP开发过程中,我们经常会遇到一些文件操作的问题,其中之一就是"PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory

PHP Fatal error: Call to undefined function mysqli_connect()的解决方法 PHP Fatal error: Call to undefined function mysqli_connect()的解决方法 Jun 23, 2023 am 09:40 AM

在使用PHP编写Web应用程序时,经常会使用MySQL数据库来存储数据。PHP提供了一种与MySQL数据库进行交互的方法,称为MySQLi。然而,有时在使用MySQLi时,会遇到一个错误信息,如以下所示:PHPFatalerror:Calltoundefinedfunctionmysqli_connect()这个错误信息意味着PHP无法找到my

Vue中的TypeError: Cannot read property '$XXX' of undefined,应该如何处理? Vue中的TypeError: Cannot read property '$XXX' of undefined,应该如何处理? Nov 25, 2023 pm 12:14 PM

如果你在使用Vue.js进行开发时,经常遇到“TypeError:Cannotreadproperty'$XXX'ofundefined”的错误提示,那么该如何处理呢?本文将介绍这个错误的原因以及如何解决。问题的原因在使用Vue.js的时候,我们经常会用到this来调用Vue组件的方法,比如:exportdefault{data()

See all articles