我一直試圖在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
,但他們要麼是指不同的問題或只是我不明白的答案以及
OIS_INCLUDE_DIR表示找不到OIS的包含(頭文件)。您的發行版都有一個必須安裝的軟件包,或者您必須將OIS安裝目錄添加到CMAKE_PREFIX_PATH中。 – usr1234567
謝謝,我刪除並重新安裝了ois(面向對象的輸入系統),現在我可以使用cmake生成makefiles,但是我被困在make中;如果我使用make或mke -j4來實現多線程,它會給我這兩個: –