c++ - 使用 Linux 了解 CMake

标签 c++ linux gcc makefile compilation

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

5年前关闭。




Improve this question




我一直在 Visual Studio 2015 中处理一个 Windows 项目,但我现在需要编译它才能在 Linux 上运行。我已经尝试过多次失败的尝试,并且读到 CMake 是最好的方法,但我很难理解它。

我有以下文件:

Othello.cpp - Main is in here
Board.cpp
MonteCarlo.cpp
Node.cpp

Board.h
MonteCarlo.h
Node.h

本质上,我不知道应该如何编译它。谢谢阅读!

最佳答案

假设您已经解决了 Windows 和 Linux 之间的原生 API 的任何实现问题,您可以执行以下操作:

首先,引用官方教程和文档作为起点。

https://cmake.org/cmake-tutorial/

https://cmake.org/documentation/

假设您有一个如下所示的目录:

- myproject
    - CMakeLists.txt
    - main.cpp
    - otherstuff.cpp

如果您没有 CMakeLists.txt 文件,请阅读教程并将源文件名更改为您的。

我建议创建一个单独的目录,其中包含 cmake 程序将创建的所有文件。
mkdir build && cd build

现在你执行 cmake 并告诉它主 CMakeLists.txt 文件在哪里。在我们的例子中,一个目录向上。
cmake ..

将进行配置过程,您会看到文本告诉您该过程已完成。您将在构建目录中有一个生成文件。您现在要做的就是运行 make 命令。
make

如果您要链接到库,请查看 TARGET_LINK_LIBRARIESINCLUDE_DIRECTORIES命令。

关于c++ - 使用 Linux 了解 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770872/

相关文章:

c++ - 不同数据类型的二进制格式

c++ - x86上的原子性

c++ - QT静态库未定义对静态变量的引用

c - 为什么此语句会在 gcc 中产生链接器错误?

c++ - g++ 使用虚拟继承的简单程序的汇编输出

C++ L"whatever"-> wstring -> basic_string<T>

c++ - 组播波形发生器

c - 在库中调用 write(2) 时禁用 SIGPIPE 信号

linux - 在同一终端实例中显示多个日志的输出

c - 试图粉碎堆栈