我正在使用Qt Creator在Windows 7上构建一个共享库。因此它会生成一个
myLib.dll和myLib.lib
有没有办法让myLib.dll文件在创建后自动移动到特定目录?
答案 0 :(得分:0)
根据Qt Documentation - Variables完全成功编译后,这可以作为后期链接作业自动完成。
将项目的.pro文件添加到以下行:
QMAKE_POST_LINK += $(COPY_FILE) "$${DESTDIR_TARGET}$${TARGET_EXT}" "C:\Destination\Directory\For Created DLL"
或者,如果 QMAKE 解析创建DESTDIR
的行,则以前项目中未定义DESTDIR_TARGET
或MakeFile
不存在。
QMAKE_POST_LINK += $(COPY_FILE) "$${OUT_PWD}/$${TARGET}$${TARGET_EXT}" "C:\Destination\Directory\For Created DLL"
如果$${TARGET_EXT}
被空字符串替换,请在上面的行中使用固定的.dll
代替$${TARGET_EXT}
。
当然也可以移动 DLL,而不是使用以下3行之一复制它:
QMAKE_POST_LINK += $(MOVE) "$${DESTDIR_TARGET}$${TARGET_EXT}" "C:\Destination\Directory\For Created DLL"
QMAKE_POST_LINK += $(MOVE) "$${OUT_PWD}/$${TARGET}$${TARGET_EXT}" "C:\Destination\Directory\For Created DLL"
QMAKE_POST_LINK += $(MOVE) "$${OUT_PWD}/$${TARGET}.dll" "C:\Destination\Directory\For Created DLL"
但是在Windows上还有 QMAKE 变量DLLDESTDIR
直接在.pro文件中指定一个目录,在链接后应该将创建的DLL复制到该目录中。
DLLDESTDIR="C:\Destination\Directory\For Created DLL"
注意:我无法测试此处为Windows编写的任何内容。我只能确认上面写的所有内容都不适用于Linux,因为与Windows相比,Linux上的库管理完全不同。