sccn/lsl_archived

undefined symbol: lsl_library_info (missing from compiled liblsl32armv7l.so)

dxjones opened this issue · 7 comments

After installing the ARM version of the liblsl32.so library to work on the Raspberry Pi 3 B+, we get this error message:

AttributeError: /usr/local/lib/python2.7/dist-packages/pylsl/liblsl32.so: undefined symbol: lsl_library_info

I am wondering if lsl_library_info() function was added recently (within the past year), so the ARM library needs to be recompiled from the updated source.

If that is the case, I would appreciate guidance on how to compile liblsl32.so on a Raspberry Pi.

From what I have heard, it may take 3 hours, ... so I am hoping to get some help in the process, so it will be successful the first time.

Any help or advice appreciated.

First, install the build environment (see here; short: install g++ / clang++, CMake, and optionally git). Then, clone the liblsl repository or download and unzip the archive.

In the downloaded folder, do

  • mkdir build; cd build
  • cmake -DLSL_LSLBOOST_PATH=lslboost ..
  • time cmake --build . --target install

To speed things up, you could try a branch with some compilation speed optimizations and/or install ninja beforehand (add -G Ninja to the first cmake invocation)

Please test the .so I attached to a comment on sccn/liblsl#2

From what I have heard, it may take 3 hours

On a plain 3B without overclocking and a slow SD card it takes about 13 minutes, but you have to limit the build to 3 concurrent processes. A deb package for Raspbian is available at the releases page

Great. Can you please add this link to the PR which is where I have been sending?

Also, can you test the lib I built? I hope to include it in pylsl on pypi. I can use your .so file but I would like to be able to generate it on the fly when needed.

I'm currently out of the country with only my smartphone at hand, so I can't do anything before next week