2015-12-03 23 views
1

我一直試圖在archlinux下使用4.2.6 Kernel編譯鑽機的鑽機。 我遵循http://www.rigsofrods.com/wiki/pages/Compiling_Sources_under_Linux 中提供的官方編譯指令我已經成功編譯了ogredeps,並且CMake給了我沒有錯誤,我甚至爲它啓用了多線程(在使用make之後,運行CMake之後),但是當我嘗試編譯Ogre編制說明「食人魔本身」一節中提到)的CMake給了我這樣的:Cmake錯誤:項目中使用了以下變量,但它們設置爲NOTFOUND試圖在archlinux中編譯鑽桿的鑽機

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. 
Please set them or make sure they are set and tested correctly in the CMake files: 
OIS_INCLUDE_DIR (ADVANCED) 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 
    used as include directory in directory /root/ror-deps/ogre/Samples 

而且,這裏是/root/ror-deps/ogre/CMakeFiles/CMakeError.log的輸出:

Determining if the system is big endian passed with the following output: 
Change Dir: /root/ror-deps/ogre/CMakeFiles/CMakeTmp 

Run Build Command:"/usr/bin/make" "cmTC_4b356/fast" 
/usr/bin/make -f CMakeFiles/cmTC_4b356.dir/build.make CMakeFiles/cmTC_4b356.dir/build 
make[1]: se entra en el directorio '/root/ror-deps/ogre/CMakeFiles/CMakeTmp' 
Building C object CMakeFiles/cmTC_4b356.dir/TestEndianess.c.o 
/usr/bin/cc  -o CMakeFiles/cmTC_4b356.dir/TestEndianess.c.o -c /root/ror-deps/ogre/CMakeFiles/CMakeTmp/TestEndianess.c 
Linking C executable cmTC_4b356 
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b356.dir/link.txt --verbose=1 
/usr/bin/cc  CMakeFiles/cmTC_4b356.dir/TestEndianess.c.o -o cmTC_4b356 -rdynamic 
make[1]: se sale del directorio '/root/ror-deps/ogre/CMakeFiles/CMakeTmp' 

TestEndianess.c: 
/* A 16 bit integer is required. */ 
typedef unsigned short cmakeint16; 

/* On a little endian machine, these 16bit ints will give "THIS IS LITTLE ENDIAN." 
    On a big endian machine the characters will be exchanged pairwise. */ 
const cmakeint16 info_little[] = {0x4854, 0x5349, 0x4920, 0x2053, 0x494c, 0x5454, 0x454c, 0x4520, 0x444e, 0x4149, 0x2e4e, 0x0000}; 

/* on a big endian machine, these 16bit ints will give "THIS IS BIG ENDIAN." 
    On a little endian machine the characters will be exchanged pairwise. */ 
const cmakeint16 info_big[] =  {0x5448, 0x4953, 0x2049, 0x5320, 0x4249, 0x4720, 0x454e, 0x4449, 0x414e, 0x2e2e, 0x0000}; 

#ifdef __CLASSIC_C__ 
int main(argc, argv) int argc; char *argv[]; 
#else 
int main(int argc, char *argv[]) 
#endif 
{ 
    int require = 0; 
    require += info_little[argc]; 
    require += info_big[argc]; 
    (void)argv; 
    return require; 
} 

我研究過了,我看過這些問題:

- CMake Error: The following variables are used in this project, but they are set to NOTFOUND - CMake Error: The following variables are used in this project, but they are set to NOTFOUND - CMake Error: The following variables are used in this project, but they are set to NOTFOUND ? in ros

,但他們要麼是指不同的問題或只是我不明白的答案以及

+2

OIS_INCLUDE_DIR表示找不到OIS的包含(頭文件)。您的發行版都有一個必須安裝的軟件包,或者您必須將OIS安裝目錄添加到CMAKE_PREFIX_PATH中。 – usr1234567

+0

謝謝,我刪除並重新安裝了ois(面向對象的輸入系統),現在我可以使用cmake生成makefiles,但是我被困在make中;如果我使用make或mke -j4來實現多線程,它會給我這兩個: –

回答

1

OIS_INCLUDE_DIR意味着,包括OIS的(頭文件)不找到。您的發行版都有一個必須安裝的軟件包,或者您必須將OIS安裝目錄添加到CMAKE_PREFIX_PATH

+0

謝謝,我已經下載並編譯了OIS,現在我可以使用CMake,但是我被困在make中,但是,我會爲這個問題開一個新的問題 –

相關問題