Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined reference to `Revert::~Revert()' #15

Open
HangJie720 opened this issue Dec 2, 2019 · 7 comments
Open

undefined reference to `Revert::~Revert()' #15

HangJie720 opened this issue Dec 2, 2019 · 7 comments

Comments

@HangJie720
Copy link

when I compiled your code tf_blazeface.cpp under MNN source code, error occured.

CMakeFiles/blazeface.out.dir/tf_blazeface.cpp.o: In function `std::unique_ptr<Revert, std::default_delete<Revert> >::~unique_ptr()':
tf_blazeface.cpp:(.text._ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED2Ev[_ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED5Ev]+0x10): undefined reference to `Revert::~Revert()'
CMakeFiles/blazeface.out.dir/tf_blazeface.cpp.o: In function `main':
tf_blazeface.cpp:(.text.startup.main+0x13c): undefined reference to `Revert::Revert(char const*)'
tf_blazeface.cpp:(.text.startup.main+0x148): undefined reference to `Revert::initialize()'
tf_blazeface.cpp:(.text.startup.main+0x150): undefined reference to `Revert::getBuffer() const'
tf_blazeface.cpp:(.text.startup.main+0x15c): undefined reference to `Revert::getBufferSize() const'
tf_blazeface.cpp:(.text.startup.main+0x1ac): undefined reference to `Revert::~Revert()'
collect2: error: ld returned 1 exit status
tools/cpp/CMakeFiles/blazeface.out.dir/build.make:111: recipe for target 'blazeface.out' failed
make[2]: *** [blazeface.out] Error 1
CMakeFiles/Makefile2:1247: recipe for target 'tools/cpp/CMakeFiles/blazeface.out.dir/all' failed
make[1]: *** [tools/cpp/CMakeFiles/blazeface.out.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
@HangJie720 HangJie720 changed the title tf_blazeface.cpp:(.text._ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED2Ev[_ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED5Ev]+0x10): undefined reference to `Revert::~Revert()' undefined reference to `Revert::~Revert()' Dec 2, 2019
@HangJie720
Copy link
Author

when I compiled your code tf_blazeface.cpp under MNN source code, error occured.

CMakeFiles/blazeface.out.dir/tf_blazeface.cpp.o: In function `std::unique_ptr<Revert, std::default_delete<Revert> >::~unique_ptr()':
tf_blazeface.cpp:(.text._ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED2Ev[_ZNSt10unique_ptrI6RevertSt14default_deleteIS0_EED5Ev]+0x10): undefined reference to `Revert::~Revert()'
CMakeFiles/blazeface.out.dir/tf_blazeface.cpp.o: In function `main':
tf_blazeface.cpp:(.text.startup.main+0x13c): undefined reference to `Revert::Revert(char const*)'
tf_blazeface.cpp:(.text.startup.main+0x148): undefined reference to `Revert::initialize()'
tf_blazeface.cpp:(.text.startup.main+0x150): undefined reference to `Revert::getBuffer() const'
tf_blazeface.cpp:(.text.startup.main+0x15c): undefined reference to `Revert::getBufferSize() const'
tf_blazeface.cpp:(.text.startup.main+0x1ac): undefined reference to `Revert::~Revert()'
collect2: error: ld returned 1 exit status
tools/cpp/CMakeFiles/blazeface.out.dir/build.make:111: recipe for target 'blazeface.out' failed
make[2]: *** [blazeface.out] Error 1
CMakeFiles/Makefile2:1247: recipe for target 'tools/cpp/CMakeFiles/blazeface.out.dir/all' failed
make[1]: *** [tools/cpp/CMakeFiles/blazeface.out.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

This problem is solved due to head file revertMNNModel.hpp is not found. Thank you for your blazeface model, but the model accuracy is not high, result is shown as follows,

@CabbageWust
Copy link

你好,我也遇到这个问题,请教一下。我程序里是可以跳到“revertMNNModel.hpp”这个头文件的,那是否代表能找到这个头文件?

2 similar comments
@CabbageWust
Copy link

你好,我也遇到这个问题,请教一下。我程序里是可以跳到“revertMNNModel.hpp”这个头文件的,那是否代表能找到这个头文件?

@CabbageWust
Copy link

你好,我也遇到这个问题,请教一下。我程序里是可以跳到“revertMNNModel.hpp”这个头文件的,那是否代表能找到这个头文件?

@tangchen2
Copy link

你好,我也遇到这个问题,请教一下。我程序里是可以跳到“revertMNNModel.hpp”这个头文件的,那是否代表能找到这个头文件?

你好,请问你解决这个问题了么,我程序里包含了“revertMNNModel.hpp”,但仍然无法链接到Revertor

@ZhangZhiHao233
Copy link

你好,我也遇到这个问题,请教一下。我程序里是可以跳到“revertMNNModel.hpp”这个头文件的,那是否代表能找到这个头文件?

你好,请问你解决这个问题了么,我程序里包含了“revertMNNModel.hpp”,但仍然无法链接到Revertor

他的通过内存的加载方式,你可以直接通过文件名的加载方式,不用它的代码。请查看MNN手册

@Riut521
Copy link

Riut521 commented Nov 27, 2020

我也遇到这个问题,其实像这种undefined reference to xxx就是在链接库的时候没有找到xxx,查了一下这里的这些函数都是在revertmodel.hpp里面声明的,可能是编译的时候libMNN.so里面没有编译到这个东西,所以我单独把revertModel.cpp和revertModel.hpp拿出来编了一个revertModel.a的静态库,最后显示的加到链接里面去就可以编译通过了。
这个模型测单个人脸倒还好,多人脸效果直接拉跨。
大家可以尝试一下ultraface或者retinaface的mnn模型效果都还不错,速度我在rk3399上有17fps。

更新:
刚才看了一下,这个问题还有一个更简单的解决方法,就是在add_executable的时候,把revertModel.cpp放在 tf_blazeface.cpp后面一起编译,可以省一下编译静态库的过程。
其实这个工程里面都是用Android.mk写的编译文档。大家对比一下就可以发现里面就是把revertModel.cpp跟tf_blazeface.cpp一起编译在可执行文件里面的。
以上

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants