我刚开始使用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++编写自动化测试脚本的推荐方法是什么?
发布于 2018-02-24 08:17:23
这里:
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++语言没有什么特别的关系,所以我删除了那个标记。
发布于 2018-02-25 05:19:43
Windows cmd.exe和大多数windows程序不会自动将正斜杠转换为反斜杠。将./output ...更改为output.exe,它应该可以正常工作。无论如何,.\都是多余的。
https://stackoverflow.com/questions/48957968
复制相似问题