首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用批处理的C++测试自动化:特别是如何使用Makefile为项目构建.exe?

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

Stack Overflow用户
提问于 2018-02-24 08:13:16
回答 2查看 396关注 0票数 0

我刚开始使用Makefiles,并且很难构建一个文件扩展名为.exe的可执行文件。

目前,这就是我构建可执行文件失败的原因:

代码语言:javascript
复制
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文件中尝试执行以下操作:

代码语言:javascript
复制
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++编写自动化测试脚本的推荐方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2018-02-24 08:17:23

这里:

代码语言:javascript
复制
 g++ main.o user.o item.o transaction.o bid.o -o

-o选项需要输出文件的名称,在本例中为可执行文件。所以:

代码语言:javascript
复制
 g++ main.o user.o item.o transaction.o bid.o -o something

或者:

代码语言:javascript
复制
 g++ main.o user.o item.o transaction.o bid.o -o something.exe

这是纯粹的GCC/makefile/bash语法,与C++语言没有什么特别的关系,所以我删除了那个标记。

票数 0
EN

Stack Overflow用户

发布于 2018-02-25 05:19:43

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48957968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档