如何在一个文件夹中编译多个文件? < >我决定在C++中完全编写我的游戏(回合制RPG)。

如何在一个文件夹中编译多个文件? < >我决定在C++中完全编写我的游戏(回合制RPG)。,c++,C++,我在youtube上看到其他人创建了一个包含不同cpp文件的文件夹,然后不知何故,他们将其全部编译 我的问题是,如何在一个文件夹中编译多个文件 如果需要,我将使用MSYS。使用cmake 您可以编写一个makefile,其中包含要在文件夹中编译的所有文件,或者为了更好地管理,您可以使用cmake将所有文件编译到库中并再次使用它们。通过使用cmake,您可以高效地维护和构建庞大的代码库 比如说,您的主目录有Main.cpp文件,其中有一个src文件夹,其中有所有其他要编译的文件 然后您可以创建一个

我在youtube上看到其他人创建了一个包含不同cpp文件的文件夹,然后不知何故,他们将其全部编译

我的问题是,如何在一个文件夹中编译多个文件

如果需要,我将使用MSYS。

使用cmake 您可以编写一个makefile,其中包含要在文件夹中编译的所有文件,或者为了更好地管理,您可以使用cmake将所有文件编译到库中并再次使用它们。通过使用cmake,您可以高效地维护和构建庞大的代码库

比如说,您的主目录有Main.cpp文件,其中有一个src文件夹,其中有所有其他要编译的文件

然后您可以创建一个包含以下内容的
CMakeLists.txt
文件

set(CMAKE_C_COMPILER "gcc")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -std=c++14 ")
add_subdirectory(src)
add_executable(main main.cpp)
target_link_libraries(main compiledLibrariesfrmSrcFolder)
然后在
src
目录中导航以创建另一个CMakeLists.txt。这将控制您需要编译并添加到主程序中的所有文件

add_library(compiledLibrariesfrmSrcFolder STATIC
a.cpp
b.cpp
c.cpp
d.cpp)
否则,您还可以使用
GLOB\u RECURSE
添加该子目录中的所有.cpp文件

完成后,您可以在主目录中创建一个新文件夹并运行以下操作
mkdir构建

cd build
cmake ../
make 
这将编译并生成build文件夹中的可执行文件

注意:更详细地说,在构建中这样做的主要原因是因为cmake在这个过程中创建了很多临时文件,为了将它们与主代码隔离,您将在构建目录中进行构建

cmake../
,这里cmake接受一个参数,该参数是主
CMakeLists.txt
文件的位置。在我们的例子中,在构建之前它将是一个目录。这将创建
MakeFile
,其中包含编译和链接所有其他必要文件的指令


make
编译和链接文件并生成可执行文件。

您的操作系统是什么?
g++file1.cpp file2.cpp file3.cpp-o game.exe
。AFAIK PowerShell支持globs:
g++*.cpp-o game.exe
也应该可以工作。您可能有兴趣阅读:这是否回答了您的问题?如果您想与他人共享您的源代码,CMake也将非常有帮助,因为除了生成Makefiles之外,您还可以为其他编译器(如mscv/Visual Studio)或IDE(如XCode或qt creator)生成项目文件。非常感谢!!我试试这个。