diff --git a/.gitignore b/.gitignore
index 38d66e72108dfac325086ca89e2e66503b760175..a4caf5bdc6f7fdd5ef6e23590b46f4db297610ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 *.o
 *.out
 *.exe
+.qmake.stash
diff --git a/copy_file/.gitignore b/copy_file/.gitignore
index 40825eaa858d6ca8ea2e069dcee6c31c6f9baae7..1d68f3ff441a208349df121a96f2fdfe78609659 100644
--- a/copy_file/.gitignore
+++ b/copy_file/.gitignore
@@ -1,3 +1,6 @@
 cpp-linux
 cpp-*.txt
 win32.txt
+Makefile.qt
+QtCopyFile
+qt.txt
diff --git a/copy_file/Makefile b/copy_file/Makefile
index 14a8e6d1a2a5610f0288781ffcd882c001bf2e4d..b7489daa4651bc8ab49714e72f65689afe10db2d 100644
--- a/copy_file/Makefile
+++ b/copy_file/Makefile
@@ -25,3 +25,13 @@ cpp-linux.txt: cpp-linux $(SOURCE)
 
 cpp-linux: cpp17.cpp
 	clang++ -Wall -std=c++17 -o $@ $< -lstdc++fs
+
+qt.txt: QtCopyFile
+	rm -f $@
+	./$< $@
+
+QtCopyFile: Makefile.qt qt.cpp
+	$(MAKE) -f Makefile.qt
+
+Makefile.qt: Qt.pro
+	qmake -o $@ $<
diff --git a/copy_file/Qt.pro b/copy_file/Qt.pro
new file mode 100644
index 0000000000000000000000000000000000000000..9a5f0af867b2e869722d5a38faab20c90c338a2d
--- /dev/null
+++ b/copy_file/Qt.pro
@@ -0,0 +1,5 @@
+QT += core
+
+TARGET = QtCopyFile
+
+SOURCES += qt.cpp
diff --git a/copy_file/qt.cpp b/copy_file/qt.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ddf77c54b197ab6395e5b776bcffade939c1a89e
--- /dev/null
+++ b/copy_file/qt.cpp
@@ -0,0 +1,8 @@
+#include <assert.h>
+
+int main(int argc, char** argv)
+{
+  assert(argc==2); /* argv[1] is the destination file */
+  /* Your code here */
+  return 0;
+}