Cmake错误:项目中使用了以下变量,但它们设置为NOTFOUND,试图在archlinux中编译Rods的Rigs

时间:2015-12-03 02:33:52

标签: c++ linux compilation cmake archlinux

我一直在尝试使用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

但他们要么提到不同的问题,要么就是我无法理解答案

1 个答案:

答案 0 :(得分:1)

OIS_INCLUDE_DIR表示找不到OIS的包含(头文件)。您的发行版有一个必须安装的包,或者您必须将OIS安装目录添加到CMAKE_PREFIX_PATH