【问题标题】:Compiling project with makefile in CMake在 CMake 中使用 makefile 编译项目
【发布时间】:2014-02-26 04:30:57
【问题描述】:

我有一些应该在 Linux 上编译的代码,但我希望它在 Windows 上运行。我有一个像这样的生成文件:

server: main.o timerclass.o entityclass.o zoneclass.o networkclass.o systemclass.o
    g++ -o server main.o timerclass.o entityclass.o zoneclass.o networkclass.o systemclass.o -pthread

main.o: main.cpp
    g++ -c main.cpp

timerclass.o: timerclass.cpp
    g++ -c timerclass.cpp

entityclass.o: entityclass.cpp
    g++ -c entityclass.cpp

zoneclass.o: zoneclass.cpp
    g++ -c zoneclass.cpp

networkclass.o: networkclass.cpp
    g++ -c networkclass.cpp

systemclass.o: systemclass.cpp
    g++ -c systemclass.cpp

我将如何编译这是 cmake?

【问题讨论】:

  • stackoverflow 不是谷歌训练有素的松鼠在休息时间直接回答问题的地方
  • 这可以很容易地用谷歌搜索,但答案对任何人都没有帮助。请先做一些研究。
  • 这确实是CMAKE的基础。请考虑先阅读一些文档...

标签: c++ makefile cmake


【解决方案1】:

对于带有 make 的 gcc:

  1. 在源文件旁边创建一个文件 CMakeLists.txt,其内容如下:

    project(myproject)
    add_executable(my_exec main.cpp timerclass.cpp ..)
    
  2. 创建一个构建文件夹并 cd 进入它。

  3. 运行cmake path/to/your/CMakeLists.txt

  4. 运行make

在 Windows 上,您将具有相同的设置,但启动 CMake UI 并最初选择(例如)Visual Studio 编译器,而不是在控制台上运行 cmake。

但是正如 cmets 已经声明的那样:CMake 不会编译任何东西。您生成 Makefile 或项目文件并使用它们,而不是手动创建它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 2018-07-04
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多