使用批处理的C 测试自动化:特别是如何使用makefile为项目构建.exe



我是使用makefiles并努力构建使用.exe的文件扩展的可执行文件的新手。

当前,这是我所拥有的,无法构建可执行文件:

output: main.o user.o item.o transaction.o bid.o
    g++ main.o user.o item.o transaction.o bid.o -o output.exe
main.o: main.cpp
    g++ -c main.cpp
user.o: user.cpp user.h
    g++ -c -std=c++11 user.cpp
item.o: item.cpp item.h
    g++ -c -std=c++11 item.cpp
transaction.o: transaction.cpp transaction.h
    g++ -c -std=c++11 transaction.cpp
bid.o: bid.cpp bid.h
    g++ -c -std=c++11 bid.cpp
clean:
    rm *.o output

我想制作一个.EXE文件,因为我正在创建一个批处理脚本来对程序进行自动测试。当我创建批处理脚本时,我会在runTest.bat文件中尝试以下内容:

cd ../../
make
./output current_User_Accounts_File.uaf available_Items_File.ai daily_Transaction_File.tra < Test_Cases/login/login1.in
pause

问题是,我会定期使用bash来执行我的程序,然后键入./,然后键入可执行文件。使用批处理文件,它无法识别./,这就是为什么我想尝试构建.exe文件的原因。任何帮助或建议将不胜感激。

有更好的策略来解决这个问题吗?我必须自动化多个测试案例,其中我要进行输入。当采用创建.sh脚本的方法时,我会遇到其他冲突。为C 进行自动测试脚本的建议方法是什么?

在这里:

 g++ main.o user.o item.o transaction.o bid.o -o

-o选项期望输出文件的名称,在这种情况下为可执行文件。所以:

 g++ main.o user.o item.o transaction.o bid.o -o something

或:

 g++ main.o user.o item.o transaction.o bid.o -o something.exe

这是纯GCC/makefile/bash语法,与C 语言无关,因此我要删除该标签。

Windows cmd.exe和大多数Windows程序不会自动将前向斜线转换为后斜线。将./output ...更改为output.exe,它应该可以正常工作。.无论如何都会是多余的。

最新更新