❶ Qt 編譯好的 可執行文件 不能運行是怎麼回事
缺少動態鏈接庫,你的qt是動態編譯的,根據提示上你qt的安裝目錄上考到你的exe文件夾里
❷ qt編譯後運行錯誤 出現應用程序無法正常啟動(0Xc0150002).請單擊「確定」關閉應用程序.
代碼有問題
❸ cmake + Qt 5 編譯出錯,請幫忙看看怎麼解決
Qt在編譯時,需要首先使用uic.exe編譯UI文件,通過moc.exe處理Q_OBJECT之類的宏,當然你可以去掉這些定義,否則就需要加上:
# COMPILE UIs
SET(UIS
mnwindow
)
FOREACH (ui_file ${UIS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/ui_${ui_file}.h")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/uic.exe -o ${TMP_OUT} ${TMP_IN})
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/uic.exe -o ${PROJECT_BINARY_DIR}/ui_${ui_file}.h ${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
ENDFOREACH(ui_file)
# CREATE MOC
SET(HEADERS
mainwindow
)
FOREACH (header_file ${HEADERS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/moc_${header_file}.cpp")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/moc.exe -o ${TMP_OUT} ${TMP_IN})
SET(MOCS ${MOCS} ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp)
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/moc.exe -o ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp ${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
ENDFOREACH(header_file)
free c#.net qr creator
這里要注意的是:EXECUTE_PROCESS在COMMAND後面不能加引號,命令直接寫,否則執行的程序也不會出錯,但也不會正常運行.
❹ Qt編程遇到的問題,我在qt中直接使用C語言的程序片段,有問題 ,求解
改成C++肯定是可以的~,至於C,還真沒在QT裡面寫過~
❺ 為什麼我的qt編譯程序時不報錯也不運行
首先確定的環境有搭建好!然後確定你編譯的程序不是arm的給
開發板
用的,而是X86平台的!最後就是你的系統有問題了!
❻ 用QT編寫出程序,不能運行,修改環境變數後也不能運行,提示Qtcored4.dill,求大蝦幫
把缺少的dll拷貝到應用程序目錄或者把qt的bin目錄添加到環境變數的path中。
❼ 哪位大神知道QT應用程序正常初始化失敗0xc0150002這個錯誤 直接打開QT編譯生成好的可執行程序就出現問題
應用程序正常初始化錯誤
1. VC2003、VC2005、VC2008及其後續版本,對底層最基本的CRT、MFC、ATL庫都進行了重構,為了避免不同版本的庫引起沖突,重構後的庫文件一般放在 C:\\windows\WinSxS 文件夾中,並用特定的文件夾\文件名稱進行標識;
2. 與VC6不同, VC2003、VC2005、VC2008及其後續版本,引入了manifest清單的概念,即應用程序編譯後會同時生成對應的.manifest文件,並將該.manifest文件作為資源編譯到dll或者exe中去。.manifest文件實際上是一個XML格式的文本文件,裡面記錄了dll或exe中要引用的CRT、MFC、ATL庫的版本和名稱。VC6編譯的應用程序對CRT、MFC、ATL的dll都是直接調用,而VC2003、VC2005、VC2008編譯的程序都是先查詢編譯到資源中的manifest中的記錄,然後按照記錄提供的版本和名稱去搜尋對應的CRT、MFC、ATL庫以及隨庫發布的.manifest文件,搜尋的路徑包括當前目錄、C:\\windows\WinSxS 等等,如果沒有找到對應的庫文件,則提示「應用程序正常初始化失敗」;
3.因此解決這個問題的辦法就是:(a)用文本編輯器打開exe或dll對應的.manifest文件,查看它引用的CRT、MFC、ATL庫的版本;或者,用UltraEdit直接打開exe或者dll,從資源區中找到編譯進去的.manifest信息,找到它引用的CRT、MFC、ATL庫的版本;或者,運行程序,當程序彈出「應用程序正常初始化失敗」對話框時,在桌面上右鍵點擊「我的電腦」-「管理」-「事件查看器」-「系統」,雙擊查看其中的記錄,可以看到出錯的原因是因為缺少了某某版本的CRT、MFC、ATL庫,記錄下這個版本信息;(b)記錄到的庫的版本信息一般類似於「Microsoft.VC90.DebugCRT」,之後到C:\\windows\WinSxS 或者VC200X的安裝文件夾中搜索包含這個字元串的文件夾和文件,將搜索到的dll和.manifest文件都拷貝到應用程序所在的文件夾中,其中,.manifest文件必須重命名為「Microsoft.VC90.DebugCRT.manifest」(這里以Microsoft.VC90.DebugCRT為例),這樣應用程序就可以正常運行了;(c)注意:庫的.manifest文件和dll要一同拷貝到應用程序根目錄去,因為應用程序會將編譯到內部的manifest信息與外部的.manifest文件進行對比,之後才會對庫的dll進行調用。如果只拷貝庫的dll文件是沒有用的;
4.如果本機編譯和運行程序都ok,但是將編譯好的程序拿到其它機器上確無法運行,則多半也是這個原因。另外,如果提示"應用程序配置不正確",大多也是因為上面所說的CRT、MFC、ATL庫版本與應用程序不匹配導致的,可以如法炮製進行解決;
❽ Qt 編譯不了,怎麼解決啊,'cl' 不是內部或外部命令,也不是可運行的程序 或批處理文件。
沒裝 Visual Studio 自然用不了 cl 編譯器。
❾ qt 為什麼可以編譯.cpp後綴的C++文件 而無法編譯.c文件
哈!!哈哈,,不是說QT不支持*.c文件,肯定是支持的,既然是*.c文件也就是說默認該文件編譯時使用C編譯器,但是C在語法上和C++還是有一點區別的!就比如說,C中就沒有什麼名稱空間所以namespace可定他就不認識了,因為namespace只是C++中的關鍵字,而非C中!要想編譯的話得把該文件中所有使用了C++語法的東西改動一下,應該就OK啦!!最後祝樓主早日解決這個問題...............