在客戶端可以在服務器端上傳代碼並且服務器使用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. 如何運行服務器端JavaScript在客戶端瀏覽器
- 3. 服務器上的C++代碼,在客戶端機器上運行
- 4. 如何運行同一按鈕的客戶端和服務器端代碼?
- 5. 如何設置JSONP在客戶端和服務器端
- 6. 從客戶端ASP .NET Extender服務器端編寫客戶端代碼ExtenderControlBase
- 7. 僅在客戶端確認後執行服務器端代碼
- 8. 運行的代碼在服務器端
- 9. MMORPG客戶端/服務器編碼
- 10. Java客戶端服務器代碼
- 11. Qt服務器客戶端代碼
- 12. 如何在dev C++上運行客戶端服務器程序?
- 13. 如何在apache服務器上運行socket.io(僅客戶端)
- 14. 是否可以在node.js服務器上設置運行(服務器端)的socket.io客戶端?
- 15. Sybase客戶端/服務器設置
- 16. 在不同的機器上運行客戶端和服務器
- 17. 如何從服務器端C#代碼觸發客戶端JavaScript?
- 18. 如何從服務器端代碼獲取客戶端timeZoneOffset
- 19. 如何從客戶端隱藏服務器端代碼?
- 20. 如何同步服務器端和客戶端代碼?
- 21. 在服務器端運行代碼
- 22. 在服務器端運行jQuery代碼?
- 23. 解析雲代碼運行在客戶端而不是在服務器端
- 24. 服務器端與客戶端端編碼的最佳實踐
- 25. Faye和nodejs:如何運行Faye服務器端客戶端?
- 26. 如何從客戶端JavaScript運行服務器端函數?
- 27. 在服務器上運行呈現並在客戶端上運行
- 28. 加密瀏覽器客戶端和服務器端代碼
- 29. Play!框架;僅在客戶端上編譯服務器
- 30. 如何分離RPC客戶端和服務器,以便服務器在應用引擎上運行並且客戶端在我的計算機上運行?
我認爲這是重複的: http://stackoverflow.com/questions/12806365/calling-gcc-with-shell-exec-in-php –