2017-10-15 1 views
0

Je veux compiler le module Emotiv EPOC pour BCI2000. Dans ce module CMakeLists fichier contient suivant (ci-dessous le journal des erreurs suivantes).Quels sont les appels de fonction comme `BCI2000_INCLUDE (" SOURCEFILTER ")` dans CMake?

Le compilateur donne l'erreur suivante,

-- Selecting Windows SDK version to target Windows 10.0.10586. 
CMake Error at CMakeLists.txt:21 (BCI2000_INCLUDE): 
Unknown CMake command "BCI2000_INCLUDE". 


CMake Warning (dev) in CMakeLists.txt: 
No cmake_minimum_required command is present. A line of code such as 

cmake_minimum_required(VERSION 3.10)``` 

CMakeLists.txt contient ce,

########################################################################### 
    ## $Id$ 
    ## Authors: [email protected] 
    ## Description: Build information for the Emotiv module 

    # Set the executable name 
    SET(EXECUTABLE_NAME Emotiv) 

    # Set the project specific sources 
    SET(SRC_PROJECT 
    EmotivADC.cpp 
    lib/edk.imports.cpp 
    ) 
    SET(HDR_PROJECT 
    EmotivADC.h 
    lib/edk.imports.h 
    ) 

    INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib/include) 

    BCI2000_INCLUDE("SOURCEFILTER") 

    IF(WIN32) 

    # Create the signal source module 
    BCI2000_ADD_SIGNAL_SOURCE_MODULE( 
    "${EXECUTABLE_NAME}" 
    "${SRC_PROJECT}" "${HDR_PROJECT}" 
    "${CMAKE_CURRENT_SOURCE_DIR}/dll/edk.dll" 
    "${CMAKE_CURRENT_SOURCE_DIR}/dll/edk_utils.dll" 
    ) 

    ELSE() 


    MESSAGE("--- No Emotiv libraries for this OS. Will not build.") 
    ENDIF() 

Comment puis-je résoudre ce problème? On dirait qu'ils sont des appels de fonction, mais comment puis-je importer ces appels de fonction d'un autre fichier s'ils sont déclarés quelque part?

+1

'comment puis-je importer ces appels de fonction d'un autre fichier si elles sont déclarées quelque part' - [include()] (https://cmake.org/cmake/help/v3.9/command/include.html) un fichier qui déclare la fonction. En fait, l'absence d'appel à 'cmake_minimum_required()' (comme indiqué dans l'avertissement) suggère que ce fichier ne devrait pas être traité par CMake en tant que * standalone *. Autrement dit, vous devriez lancer 'cmake' à partir de * autre * répertoire (probablement, à partir du répertoire externe). Lire le fichier README du projet (ou autre description). – Tsyvarev

+0

@Tsyvarev C'est un bon point, mais il n'y avait pas de readme –

Répondre

0

Le projet doit être compilé selon les instructions de ce, https://www.bci2000.org/mediawiki/index.php/Programming_Reference:Build_System Et il dit les éditions de Visual Studio sont pris en charge 9 (2008) et 10 seulement ou vous pouvez le compiler avec CodeBlocks avec MinGW.

Les modules de soutien doivent être inclus dans le dossier source de BCI2000 et compilez comme un projet ensemble non comme modules séparés. Ensuite, il a reconnu les fonctions définies dans le projet parent.

Il y a des fichiers cMakeList pour les sous-modules. Mais ils ne peuvent pas être compilés par eux-mêmes.