如果我想執行chmod
命令,執行輸出二進制文件或執行其他操作,必須對.pro
文件做出什麼更改。如何在QT中的.pro編譯完成後執行shell命令?
回答
我有類似的問題。每次執行Makefile時,我都想要一個特殊的工具(版本控制器)來運行代碼。這裏的解決方案:
(在Qmake Manual, Configuring qmake's Environment, Section: Customizing Makefile Output讀取)
創建你自己的Makefile目標。指定命令等
mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target
QMAKE_EXTRA_TARGETS += mytarget
這樣,你有一個額外的目標,你可以用make mytarget
例如調用。如果你想將它綁定到實際的構建目標,你必須添加:
POST_TARGETDEPS += mytarget
希望有所幫助。
問候
d
在這種情況下,touch命令會在編譯完成和鏈接之前執行,如果要在鏈接之後執行touch,QMAKE_POST_LINK是合適的。 – camino 2011-05-11 02:45:06
如果您正在使用Qt Creator中,你可以添加自定義建立在項目面板步驟:http://doc.qt.nokia.com/qtcreator-2.1/creator-build-settings.html#adding-custom-build-steps
它們存儲在.pro.user文件中,該文件根據定義是易失性的... – 2013-02-13 16:44:08
錯誤答案。當您可以通過QMake實現目標時,千萬不要混淆.pro.user設置。 – BuvinJ 2017-04-13 17:26:56
正確的答案取決於你想要什麼,以及何時。但是,正如以前發佈的一些評論中所看到的,這裏可能是QMAKE_POST_LINK
而不是POST_TARGETDEPS
。
退房此相關的帖子: QMake: execute script after build
首先,當您使用POST_TARGETDEPS
將觸發了你的exe文件之前創建(在Windows)或之前,它是(在Linux中)重建! QMake根據平臺和編譯器的不同而有所不同。
我需要在exe文件重新編譯時做一些「符號處理」。 POST_TARGETDEPS
在Windows(使用mingw)和Linux(使用gcc)中給我提供了問題。在Windows中,它過早地執行了我的腳本,並且在我修改了它之後,它在Linux中覆蓋了我的exe文件(即在我將外部腳本中的文件剝離後,將調試信息添加回到exe文件中)。然而,在這兩種情況下,QMAKE_POST_LINK
都能很好地工作。它也簡短,甜美,而且比較清晰!
另一種方法,使在給定的順序件事就是要用空的「超級」的目標:
super.depends = target_pre first target_post
QMAKE_EXTRA_TARGETS += super
哪裏first
- 是默認qmake的目標,並target_pre
和target_post
一些自定義的目標。現在make super
只是做的事情。
- 1. Shell腳本完成後執行命令
- 2. 如何在後臺執行shell命令
- 3. 如何在後臺執行shell命令?
- 4. 如何在Visual Studio 2005中編譯後自動執行shell命令
- 5. 命令完成後繼續執行linux shell腳本
- 6. 如何執行一個shell命令完成其他
- 7. 如何在android中執行shell命令?
- 8. 如何在python中執行shell命令?
- 9. 如何在C中執行shell命令?
- 10. 如何在Opa中執行shell命令?
- 11. 如何在執行sbt命令並打開shell後執行
- 12. 如何以編程方式等待Shell命令完成運行?
- 13. 如何在Mac OS上編譯命令行中的Qt代碼
- 14. 執行命令完成角
- 15. UNIX批處理shell腳本 - 將當前的命令只有前面的命令後,執行完成執行
- 16. Shell腳本:在shell腳本中運行「exit」命令後執行命令
- 17. 如何執行shell命令在Python中的命令後獲取輸出和pwd
- 18. 如何在編譯完文件中的所有目標後編寫makefile以運行shell命令?
- 19. 命令執行shell
- 20. 執行shell命令
- 21. Shell命令執行
- 22. 上一個命令完成後執行下一個命令
- 23. 在VBA執行Shell命令
- 24. elisp的接近*異步Shell命令*命令後窗口完成
- 25. 從命令行編譯Qt項目
- 26. 在buildbot中編譯命令生成python可執行文件
- 27. 從命令行執行Django Shell命令
- 28. 在Java中執行shell命令行
- 29. 以編程方式執行shell命令
- 30. 執行shell命令編程android系統
可以通過QMAKE_POST_LINK完成嗎?從來沒有用過這個,所以我不會把它作爲答案。也許值得一看? – Bart 2011-05-10 08:22:56
我試過QMAKE_POST_LINK,它效果很好! – camino 2011-05-11 02:08:42