如何将Cygwin链接到CMake以在Visual Studio上使用X11库?

时间:2019-06-15 11:06:26

标签: visual-studio cmake cygwin cross-platform x11

对于一个学校项目,我需要在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的链接。

1 个答案:

答案 0 :(得分:0)

我认为您可以将if __linux__放在包含之前,然后将#endif放在包含之后。这样该文件将不会包含在Windows中。