我想知道是否有办法改变下面的代码,以便它将在文件夹(+子文件夹)中构建所有“.cpp”和“.h”文件,并指定一个.exe名称。< / p>
@ECHO OFF
echo Building...
g++ -DSFML_STATIC main.cpp -lsfml-graphics-s -lsfml-window-s -lsfml-system-s
我知道我可以使用CMake,但我想知道是否可以使用批处理脚本。如果我不能按照我的要求去做,我至少可以为.exe指定一个名字吗?它总是以“a.exe”的形式出现。我正在使用MingW。
抱歉,如果已经涵盖了这一点。我搜查了一下,没找到任何东西。
答案 0 :(得分:0)
&#34; A.EXE&#34;是g ++用于Windows上可执行文件的默认名称。如果要指定自己的名称,请添加&#34; -o foo.exe&#34;到g ++命令行。
答案 1 :(得分:0)
要指定输出文件的名称,请添加选项&#34; -o name.exe&#34;。
要将大量文件传递给g ++,您必须使用如下的响应文件:
@echo off
setlocal enabledelayedexpansion
for /r %%f in (*.cpp) do (
set a=%%f
set a=!a:\=/!
echo !a! >>files.tmp
)
endlocal
g++ -DSFML_STATIC @files.tmp -o bob.exe -lsfml-graphics-s -lsfml-window-s -lsfml-system-s
del files.tmp
请注意,您应该只将* .cpp文件提供给g ++。它会在编译时自行找到.h文件。
我没有MingW设置,因此我无法完全测试,抱歉。但是关于构建响应文件的部分至少有效。
来源:
[http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO] [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true] [Multiple do commands in a for loop: Echoing a string to a file and then redirecting to the command window