sccn / lsl_archived

Multi-modal time-synched data transmission over local network
242 stars 134 forks source link

Cmake issue when build LabStreamingLayer application for Emotiv #350

Closed SeanYXWang closed 5 years ago

SeanYXWang commented 6 years ago

Hi all

I was building the emotiv application followed by the instruction on https://github.com/sccn/labstreaminglayer/blob/master/Apps/emotiv/README.md

I reached to a point the cmake error like this:

Selecting Windows SDK version to target Windows 10.0.17134. CMake Error at CMakeLists.txt:14 (include): include could not find load file:

LSLAppBoilerplate

Boost version: 1.68.0 Found the following Boost libraries: thread regex chrono system date_time atomic CMake Error at CMakeLists.txt:121 (installLSLApp): Unknown CMake command "installLSLApp".

I couldn't move on to the next step. Have any developer see this problem before?

cboulay commented 6 years ago

That app has not yet been updated to do 'out of tree' builds with the new cmake structure. Sorry about that.

For now, it might work best if you do an 'in-tree' build, including the apps that you need. From the labstreaminglayer root folder, do ...

mkdir build && cd build cmake .. -G "Visual Studio 14 2015 Win64" -DLSL_LSLBOOST_PATH="lslboost" -DQt5_DIR=C:\Qt\5.11.1\msvc2015_64\lib\cmake\Qt5 -DBOOST_ROOT=C:\local\boost_1_67_0 -DLSLAPPS_LabRecorder=ON -DLSLAPPS_XDFBrowser=ON -DLSLAPPS_Emotiv=ON

Of course you should change the locations of Qt and Boost, and maybe the visual studio version too.

SeanYXWang commented 6 years ago

Thanks cboulay. I got the application.

SeanYXWang commented 6 years ago

Hi @cboulay

After I run the LSLEmotiv.exe it says I missing Qt5Widgets.dll Qt5Gui.dll liblsl64.dll edk.dll etc... I try to copy all those files to LSLEmotiv.exe directory, but the dll seems missing a lot

Do you know what is the problem for this?

tstenner commented 5 years ago

Same cause, different problem :) I'll update this once I get back on Monday or Tuesday

SeanYXWang commented 5 years ago

@tstenner Thanks, I'll keep an eye on your post.

tstenner commented 5 years ago

I've update the CMake configuration in https://github.com/labstreaminglayer/App-emotiv/tree/cmake_update, let me know if it works for you.

SeanYXWang commented 5 years ago

I regenerated the project use "in-tree" build with the updated Cmake file. The project is built successfully. All DLLs are within the directory of Emotiv.exe, When I run the .exe application, I get an error message that says “The application was unable to start correctly” accompanied by an error code (0xc000007b)

tstenner commented 5 years ago

Did you make the install target (cmake --build . --target install)? Qt needs some additional steps this takes care of.

Otherwise, could you check with the Dependency Walker if all dependencies are found?

SeanYXWang commented 5 years ago

The Dependency Walker pointed out my problem, I was using the 32bit edk.dll instead of 64bit edk.dll. After replacing the dll with the correct version. the application opens correctly. Thanks @tstenner for providing the solutions.

Just another information I got from the Emotiv developer the current emotiv app (sdk 3.3.2) hasn't been updated to sdk 3.5.x yet. Under labstreaminglayer/Apps/emotiv/mainwindow.cpp line 104: IEE_DataUpdateHandle(0, hData);. it calls to userID = 0 which they don't use anymore in SDK 3.5.

cboulay commented 5 years ago

Please find out how I can get that version of the Sdk then I will happily update the LSL app.

SeanYXWang commented 5 years ago

Hi @cboulay

Please see this link: https://github.com/Emotiv/community-sdk

cboulay commented 5 years ago

@SeanYXWang Oh! Last time I looked they didn't support raw data streams so I was stuck using the SDK that I could only download from their website. It seems that the community sdk now supports raw multichannel data. I will try to get to this soon but I'm a bit overwhelmed at the moment; realistically I won't have time until November at the earliest. You're welcome to have a go at it earlier if you like and I'll take a look.

cboulay commented 5 years ago

I think the original issue is solved (thanks @tstenner !). If you want to open an issue to update the emotiv app to the latest community-sdk (or better yet, a pull request), please do so within its submodule: https://github.com/labstreaminglayer/App-emotiv

SeanYXWang commented 5 years ago

Sure. Thanks @cboulay @tstenner