giaf / blasfeo

Basic linear algebra subroutines for embedded optimization
Other
323 stars 88 forks source link

[ct-v2] s_aux_lib8.c: undefined reference to `kernel_sgead_8_7_gen_lib8' #28

Closed fanshi14 closed 6 years ago

fanshi14 commented 6 years ago

Hi all,

When I tried to compile the branch with ct-v2 tag, it fails with the following information

[ 92%] Building C object test_problems/CMakeFiles/s_blas.dir/test_blas_s.c.o [ 95%] Linking C executable s_blas ../libblasfeo.a(s_aux_lib8.c.o): In functionsgead_libstr': s_aux_lib8.c:(.text+0x4c48): undefined reference to kernel_sgead_8_7_gen_lib8' s_aux_lib8.c:(.text+0x4da2): undefined reference tokernel_sgead_8_7_lib8' s_aux_lib8.c:(.text+0x4e64): undefined reference to kernel_sgead_8_0_lib8' s_aux_lib8.c:(.text+0x4ebb): undefined reference tokernel_sgead_8_0_gen_lib8' s_aux_lib8.c:(.text+0x4f4a): undefined reference to kernel_sgead_8_3_lib8' s_aux_lib8.c:(.text+0x4fb2): undefined reference tokernel_sgead_8_3_gen_lib8' s_aux_lib8.c:(.text+0x4ff3): undefined reference to kernel_sgead_8_0_gen_lib8' s_aux_lib8.c:(.text+0x50aa): undefined reference tokernel_sgead_8_1_lib8' s_aux_lib8.c:(.text+0x5112): undefined reference to kernel_sgead_8_1_gen_lib8' s_aux_lib8.c:(.text+0x519b): undefined reference tokernel_sgead_8_2_lib8' s_aux_lib8.c:(.text+0x5201): undefined reference to kernel_sgead_8_2_gen_lib8' s_aux_lib8.c:(.text+0x523e): undefined reference tokernel_sgead_8_1_gen_lib8' s_aux_lib8.c:(.text+0x526c): undefined reference to kernel_sgead_8_7_gen_lib8' s_aux_lib8.c:(.text+0x5302): undefined reference tokernel_sgead_8_4_lib8' s_aux_lib8.c:(.text+0x536a): undefined reference to kernel_sgead_8_4_gen_lib8' s_aux_lib8.c:(.text+0x5402): undefined reference tokernel_sgead_8_5_lib8' s_aux_lib8.c:(.text+0x546a): undefined reference to kernel_sgead_8_5_gen_lib8' s_aux_lib8.c:(.text+0x54a6): undefined reference tokernel_sgead_8_2_gen_lib8' s_aux_lib8.c:(.text+0x5552): undefined reference to kernel_sgead_8_6_lib8' s_aux_lib8.c:(.text+0x55ba): undefined reference tokernel_sgead_8_6_gen_lib8' s_aux_lib8.c:(.text+0x55f6): undefined reference to kernel_sgead_8_3_gen_lib8' s_aux_lib8.c:(.text+0x564e): undefined reference tokernel_sgead_8_4_gen_lib8' s_aux_lib8.c:(.text+0x56b9): undefined reference to kernel_sgead_8_5_gen_lib8' s_aux_lib8.c:(.text+0x56f7): undefined reference tokernel_sgead_8_6_gen_lib8' collect2: error: ld returned 1 exit status test_problems/CMakeFiles/s_blas.dir/build.make:95: recipe for target 'test_problems/s_blas' failed make[2]: [test_problems/s_blas] Error 1 CMakeFiles/Makefile2:124: recipe for target 'test_problems/CMakeFiles/s_blas.dir/all' failed make[1]: [test_problems/CMakeFiles/s_blas.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 `

My system is Ubuntu 16.04 64bits, the way I compile it is simply cmake and make.

Then I tried to compile the master branch, it works without any problem.

Could anyone give me any hint?

Thank you in advance! Best, Kahn

tmmsartor commented 6 years ago

Sorry, I'm not sure I understand why you want to compile that tag.

That tag has been merged to master so you will only get an older version of BLASFEO, there is a reason for that?

Back at the time CMake wasn't fully supported, but Makefile works. If you really need that state of BLASFEO code I can cherrry-pick some newer commit to make CMake works also for that point in time, without adding the updates in the library code.

fanshi14 commented 6 years ago

Thank you very much for your reply.

The reason I want to compile this tag is that I am trying to use Control Toolbox-2.0, where blasfeo package is relied and maybe specially tagged as ct-2.0.

I wonder is there big difference between tag ct-2.0 and current master?

tmmsartor commented 6 years ago

Sorry I was unaware of this, I see the problem, as quick fix I created another branch from ct-v2 tag with the relevant fixes for CMake. Can you tell me also the architecture (i.e. intel sandy_bridge, intel haswell, arm v7, ecc ) of your machine to be sure we are on the same page.

For now you can try to use this branch from my fork.

git remote add tmmsartor https://github.com/tmmsartor/blasfeo.git
git fetch tmmsartor
git checkout control_toolbox_v2

On that branch BLASFEO as standalone lib is working but I'm not sure this will work flawlessly with Control Toolbox. Let me know if you still have problem with the interface with that.

I don't thing current master will work out of the box because the naming conventions for the routines has changed recently. I think it will be worth it to update the interface to allow ct to use an upstream version of BLASFEO. I hope I will be able to work on that in the next weeks.

fanshi14 commented 6 years ago

Dear @tmmsartor

Thank you very much for your kind help! I compiled successfully with my laptop Ubuntu 16.04 amd 64bits.

Thank you, I will keep updating and also following your new work.

Best, Kahn