我一直在尝试使用4.2.6内核在archlinux下编译Rods的Rigs。 我已按照http://www.rigsofrods.com/wiki/pages/Compiling_Sources_under_Linux中提供的官方编制说明进行操作 我已经成功编译了ogredeps并且CMake没有给我任何错误,我甚至为它启用了多线程(在运行CMake之后使用make。),但是当我尝试编译Ogre时(在编译指令中的“Ogre本身”部分中提到)CMake给了我这个:
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
但他们要么提到不同的问题,要么就是我无法理解答案
答案 0 :(得分:1)
OIS_INCLUDE_DIR
表示找不到OIS的包含(头文件)。您的发行版有一个必须安装的包,或者您必须将OIS安装目录添加到CMAKE_PREFIX_PATH
。