在我将 运行 CMake 和 zipped/moved 整个项目转移到不同位置后,如何允许 "make" 到 运行?

How do allow "make" to run after I have run CMake and zipped/moved the entire project to a different location?

我是一名学生,我们正在构建一个 VM 作为我 class 的一部分。我决定使用 CMake 而不是编写原始 Makefile。我的老师不想 运行 cmake 在 运行 完成我们的项目时。我需要以我的老师可以 运行 一个 bash 脚本的方式压缩我的项目:

unzip virtual_machine.zip
cd virtual_machine
make
./vm

如果 bash 脚本是:

,这将非常容易
unzip virtual_machine.zip
cd virtual_machine
cmake .
make
./vm

但事实并非如此。如果我在原始项目中压缩和解压缩文件,我可以让它工作,但是当我压缩,然后将项目移动到不同的位置时,我收到路径错误。

CMake Error: The source directory "/my/project/path/virtual_machine" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
make: *** [cmake_check_build_system] Error 1

我知道这是因为 Makefile 不再存在于它被构建的地方,但我不确定如何允许 makefile 仍然构建可执行文件,即使在整个项目被压缩、移动到不同的机器并解压缩。

任何想法都会非常有帮助!!谢谢!

只要你的老师确实安装了 cmake,你就可以使用 cmake 的 Makefile 包装器来完成你所要求的。

示例生成文件:

default:
    cmake -S . -B build
    cd build && make

clean:
    rm vm
    rm -r build

示例CMakeLists.txt:

cmake_minimum_required (VERSION 3.13) 
project (TEST) 

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ..)

add_executable(vm main.c)