对于一个学校项目,我需要在Linux和Windows上使用c ++做一个跨平台的应用程序。该程序需要使用CMake来生成可执行文件。我的程序正在使用include“ X11 / XLib.h”,所以当我尝试在Linux上使用Visual Studio生成CMake时遇到一些问题:
'X11/XLib.h' : No such file or directory
经过研究,我已经用X11库安装了cygwin,但是我不知道如何用CMake来实现。 find_package(X11 REQUIRED)
不起作用。在Internet上找到的X11.dll也是如此。
我在使用XLib的地方:
#include "Game.hpp"
int main(void)
{
XInitThreads();
indie::Game game;
game.runGame();
return 0;
}
Game.hpp包含
/*
** EPITECH PROJECT, 2019
** OOP_indie_studio_2018
** File description:
** GameRunner.hpp
*/
#ifndef OOP_INDIE_STUDIO_2018_GAMERUNNER_HPP
#define OOP_INDIE_STUDIO_2018_GAMERUNNER_HPP
#include <thread>
#include <X11/Xlib.h>
#include "GameEngine/GameEngine.hpp"
#include "Logic/Logic.hpp"
#include "Errors/ErrIrrInit.hpp"
#endif //OOP_INDIE_STUDIO_2018_GAMERUNNER_HPP
我什至不确定我尝试做的事情是否可行。我在C:\cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\include\X11\
有一个包含XLib.h的文件夹,但我可能会错过与CMake的链接。
答案 0 :(得分:0)
我认为您可以将if __linux__
放在包含之前,然后将#endif
放在包含之后。这样该文件将不会包含在Windows中。