Tencent / ncnn

ncnn is a high-performance neural network inference framework optimized for the mobile platform
Other
20.6k stars 4.18k forks source link

手机运行benchncnn报错 #1392

Closed qinb closed 5 years ago

qinb commented 5 years ago

利用华为手机【型号:MT7-TL00,处理器:Hisilicon Kirin 925】进行时间测试; 运行 ./benchncnn 8 2 0时,报错如下: CANNOT LINK EXECUTABLE: empty/missing DT_HASH in "./benchncnn" (built with --hash-style=gnu?)

请问怎么解决呢? 多谢

nihui commented 5 years ago

你是如何编译的呢? android-ndk 默认是 hash-style=sysv,不应该会出现这个问题

nihui commented 5 years ago

https://stackoverflow.com/questions/26199983/cannot-link-executable-empty-missing-dt-hash-error

In my case, I transferred the binary to my device via FTP (FileZilla) and had transfer type set to Auto. This corrupted the binary resulting in the error. When I transferred with Binary transfer type, the binary executed fine on my device.

qinb commented 5 years ago

你是如何编译的呢? android-ndk 默认是 hash-style=sysv,不应该会出现这个问题

感谢你的回答,我这边编译是通过ncnn提供的编译方式:https://github.com/Tencent/ncnn/wiki/how-to-build 其中build for android。

qinb commented 5 years ago

https://stackoverflow.com/questions/26199983/cannot-link-executable-empty-missing-dt-hash-error

In my case, I transferred the binary to my device via FTP (FileZilla) and had transfer type set to Auto. This corrupted the binary resulting in the error. When I transferred with Binary transfer type, the binary executed fine on my device.

这个链接我看到过,首先,我使用的是scp拷贝的;再者,我把benchncnn二进制文件打包后,再进行的scp,仍旧不行。我这边下载一个filezila看一下吧,一会反馈; 再次感谢

qinb commented 5 years ago

https://stackoverflow.com/questions/26199983/cannot-link-executable-empty-missing-dt-hash-error

In my case, I transferred the binary to my device via FTP (FileZilla) and had transfer type set to Auto. This corrupted the binary resulting in the error. When I transferred with Binary transfer type, the binary executed fine on my device.

这个链接我看到过,首先,我使用的是scp拷贝的;再者,我把benchncnn二进制文件打包后,再进行的scp,仍旧不行。我这边下载一个filezila看一下吧,一会反馈; 再次感谢

反馈: 我测试了你提到的方法,放到手机上运行还是报相同的错误,麻烦啦🙏 我再写一下测试机器的型号: HUAWEI MT7-TL00,处理器:Hisilicon Kirin 925, Android: 4.4.2

另附编译差别:
image 我这边下载的是android-ndk-r20,除了这个不一样之外,其他的都是按照docs顺序编译的。

nihui commented 5 years ago

android 4.4.2 你可能要用老版本的 android ndk 编译,比如 r16b

qinb commented 5 years ago

👍, 问题已经解决了!