在客戶端可以在服務器端上傳代碼並且服務器使用gcc編譯器運行代碼的情況下,將進行在線C/C++編譯器。 主要問題是如何在本地服務器中設置gcc並命令它運行代碼並將結果返回給客戶端?如何在服務器端設置gcc編譯器並要求它運行客戶端上傳的代碼?
1
A
回答
0
最簡單的方法是不需要任何特別的gcc設置。您只需檢索上傳的文件,將其放入某個目錄並調用gcc <flags> mycode.cxx -o mycode
(例如,使用shell_exec
,正如其他答案中指出的那樣)或您希望從那裏執行的任何編譯步驟。一個不錯的主意是檢查gcc的stdout
和stderr
以及子進程的退出代碼。如果一切順利,最終的可執行文件將在您要求gcc
放置它的位置,因此您只需讀取它並找回它即可。
請注意,這是對問題的過度簡化描述:它不處理可能導致超時的長編譯時間,也不考慮可能出現的安全問題(如果有的話),但我希望它可以提供幫助你開始起草一些東西。
作爲替代方案,我建議你看看distcc。這是很容易設置,認證選項,機器之間的平衡等,是非常可定製的。它也使得這個過程對用戶來說更簡單一些,因爲當他們想要編譯某些東西(當然是在配置之後)時,他們只需要在其終端中替換gcc ...
到distcc ...
。
相關問題
- 1. 如何在PHP中從客戶端編譯服務器上的C代碼
- 2. 服務器上的C++代碼,在客戶端機器上運行
- 3. 如何運行同一按鈕的客戶端和服務器端代碼?
- 4. 從客戶端ASP .NET Extender服務器端編寫客戶端代碼ExtenderControlBase
- 5. MMORPG客戶端/服務器編碼
- 6. Qt服務器客戶端代碼
- 7. Java客戶端服務器代碼
- 8. 是否可以在node.js服務器上設置運行(服務器端)的socket.io客戶端?
- 9. 如何在apache服務器上運行socket.io(僅客戶端)
- 10. Sybase客戶端/服務器設置
- 11. 如何從服務器端代碼獲取客戶端timeZoneOffset
- 12. 如何從客戶端隱藏服務器端代碼?
- 13. 解析雲代碼運行在客戶端而不是在服務器端
- 14. 如何從客戶端JavaScript運行服務器端函數?
- 15. Faye和nodejs:如何運行Faye服務器端客戶端?
- 16. 如何分離RPC客戶端和服務器,以便服務器在應用引擎上運行並且客戶端在我的計算機上運行?
- 17. 客戶端 - 服務器(從服務器到客戶端的文件傳輸)
- 18. 在單個系統上運行客戶端/服務器端編程
- 19. 從服務器上運行一些客戶端上的java代碼
- 20. 在iPhone上運行客戶端和服務器的客戶端 - 服務器Web應用程序 - 這可能嗎?
- 21. 社交媒體提要 - 客戶端或服務器端請求?
- 22. 如何從客戶端,同時從客戶端上傳文件到服務器
- 23. 如何訪問服務器在客戶端設置的對象
- 24. CORS - 它是客戶端,服務器端還是傳輸級別?
- 25. 如何使此客戶端代碼成爲服務器端代碼?
- 26. Meteor的createUser在客戶端和服務器上運行
- 27. 的服務器設置在編譯時,即使沒有客戶端連接
- 28. 如何從客戶端的數據傳送到服務器端
- 29. 如何使服務器和客戶端在任何機器上運行
- 30. 客戶端從服務器請求
我認爲這是重複的: http://stackoverflow.com/questions/12806365/calling-gcc-with-shell-exec-in-php –