使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
compile folder of cpp files into GNU's g++ using Powershell commands
我正在寻找一种方法,将完整的文件夹的 c++ 命令管道到 g++ 中,这样我就不必在g++
命令中键入 25 个文件名。
我正在使用Powershell,并认为我可以以某种方式使用带有Get-childItem -Name -Path *.cpp
的管道。这样整个文件夹可以一次编译,而不会让我丢失文件或拼写错误的文件名,并且足够模块化,我可以在粘贴之前使用Set-Location folderpath
,而不必每次制作具有中等~大量链接文件的链接程序时都编写新的makefile。
这是可能的/实用的还是我应该坚持使用生成文件?
例如:
我有一个电梯模拟从一本如何编程书中"借用"的,该书有 12 个头文件、12 个类保存到单独的 cpp 文件中,以及 1 个主执行 cpp 在C:UsersNoahDesktopripsfromthebookch09elevator
。
让我们假设程序工作所需的一切都存在,如果您在 G++ 命令中键入每个 cpp 文件名,它将正确编译为工作 A.exe 文件。
它们被命名为:
bell.cpp
bell.h
building.cpp
building.h
button.cpp
button.h
clock.cpp
clock.h
door.cpp
door.h
elevator.cpp
elevator.h
elevatorButton.cpp
elevatorButton.h
ElevatorSimulation.cpp
floor.cpp
floor.h
floorButton.cpp
floorButton.h
light.cpp
light.h
person.cpp
person.h
scheduler.cpp
scheduler.h
如果我可以使用类似于Get-ChildItem -Name -Path *.cpp | g++ -g
的东西将所有 13 个~.cpp
文件名用作输入,而不必将这个怪物 {见下文}写到 powershell 命令中,那就太好了。
或者使用字符串数组保存子项输出,然后运行 g++
$x = Get-ChildItem -name -path *.cpp
g++ -g $x -o main
会比这个怪物好。
g++ -g bell.cpp building.cpp button.cpp clock.cpp door.cpp elevator.cpp elevatorButton.cpp ElevatorSimulation.cpp floor.cpp floorButton.cpp light.cpp person.cpp scheduler.cpp
短期解决方案 我正在将Get-ChildItem
的输出复制/粘贴到我的制作文件中。
如果你正在使用Cmakelists来构建你的库/exe,你可以使用file((,如下所示:
file(GLOB your_src
"relativePath/*.h"
"relativePath/*.cpp")
add_executable(your_exe ${your_src})
但似乎建议不要
GLOB 将生成与通配表达式匹配的所有文件的列表,并将其存储到变量中。通配表达式类似于正则表达式,但要简单得多。如果为表达式指定了 RELATIVE 标志,则结果将作为给定路径的相对路径返回。(我们不建议使用 GLOB 从源树中收集源文件列表。如果没有 CMakeLists.txt则在添加或删除源时文件会更改,则生成的生成系统无法知道何时要求 CMake 重新生成。 来源: https://cmake.org/cmake/help/v3.0/command/file.html#file
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- Jetson 工具链文件夹结构和交叉编译时的 libgomp 链接器错误
- C Visual Studio代码不使用工作区中的单个文件夹编译
- 在不同于依赖DLL的文件夹中输出已编译目标的正确方法是什么
- 用G 和Make编译并链接来自不同文件夹的许多源文件
- 在Visual Studio中,我不想提交我的Debug文件夹,但它中有dll文件,如果我移动它,项目将无法编译
- 编译C++程序,如何正确链接到包含文件夹
- 如何将来自不同目录的cpp文件编译到一个文件夹中
- 每次添加新的源子文件夹时,Cmake都会重新编译所有内容
- 如何使用生成文件独立编译和更新一个文件夹中的所有文件
- 如何在 Eclipse 中编译使用子文件夹的项目
- 在单独的文件夹中编译对象,隐式规则不匹配
- VC++VS2013项目从非版本控制文件夹移动到版本控制文件夹后未进行编译
- 如何在qmake中设置预编译头文件夹的名称
- 编译并运行文件夹中提供的MySQL++和C++示例
- 如何从不存在的(在编译时)文件夹链接共享库
- Eclipse c/c++不编译子文件夹中的源代码