Ihr Verständnis von CMake ist richtig ... es bestimmt, wie das von Ihnen angeforderte Build-System (oder standardmäßig für die Plattform, auf der Sie sich gerade befinden) basierend auf den Regeln in Ihrem CMakeLists.txt
erstellt wird Datei. Dies hilft Ihnen jedoch nicht unbedingt beim Kompilieren für Linux auf einem Windows-Rechner, wenn Sie nichts installiert haben, das auf Linux abzielen kann.
Um für Linux zu kompilieren, müssen Sie einen Linux-Compiler verwenden. Der von @stjin gepostete Link sagt Ihnen, wie Sie einen auf Cygwin installieren. Um dann Ihren CMake-Build einzurichten, tun Sie dies im Terminal:
CC=gcc-linux CXX=g++-linux cmake . [options]
Dadurch wird CMake angewiesen, die speziellen Linux-Compiler zu finden. Hoffentlich können Sie nach dem Kompilieren mit diesen Compilern unter Linux laufen.
Sie sollten hier nachsehen:cmake-toolchains(7), wenn Sie Cross-Compiling durchführen. Ich würde jedoch vorschlagen, dass Sie eine Linux-VM wie eine virtuelle Box auf Ihrem Windows-Computer installieren und naiv auf Linux bauen. Es wird viel schneller kompiliert und Sie müssen sich keine Gedanken über Cross-Compiling machen. Sie können die Windows-Festplatte von der Linux-VM mounten, damit Sie denselben Quellbaum freigeben können. Die Linux-VM wird viel schneller kompiliert als gcc, das unter Windows ausgeführt wird.