2017-10-15 184 views
0

我想編譯BCI2000的Emotiv EPOC模塊。在該模塊中,CMakeLists文件包含以下內容(在下面的錯誤日誌下面)。在CMake中,像BCI2000_INCLUDE(「SOURCEFILTER」)這樣的函數調用是什麼?

編譯器提供了以下錯誤,

-- 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包含此,

########################################################################### 
    ## $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() 

我該如何解決這個問題? 看起來他們是函數調用,但是如果從另一個文件中聲明這些函數調用,如何將它們導入某處?

+1

'如何從另一個文件導入這些函數調用,如果它們被聲明在某處?' - [include()](https://cmake.org/cmake/help/v3.9/command/include.html)一個聲明該函數的文件。實際上,如果沒有調用'cmake_minimum_required()'(如警告中所示),則表明此文件不應該由CMake作爲* standalone *處理。也就是說,你應該從* other *目錄(可能來自外部目錄)運行'cmake'。閱讀項目的自述文件(或其他說明)。 – Tsyvarev

+0

@Tsyvarev這很好,但沒有自述 –

回答

0

該項目必須根據這一指令進行編譯, https://www.bci2000.org/mediawiki/index.php/Programming_Reference:Build_System 它說支持的Visual Studio版本是9(2008年)和10只或者你可以用MinGW的代碼塊編譯。

支持模塊應包含在BCI2000的源文件夾中,並將其作爲整個項目編譯而不是作爲單獨的模塊。然後識別父項目中定義的函數。

有子模塊的cMakeList文件。但他們不能自行編譯。

相關問題