SFML构建所有批处理文件

时间:2014-07-05 04:30:14

标签: c++ batch-file sfml

我想知道是否有办法改变下面的代码,以便它将在文件夹(+子文件夹)中构建所有“.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。

抱歉,如果已经涵盖了这一点。我搜查了一下,没找到任何东西。

2 个答案:

答案 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