我可以嗎 ? - 使用 GCC 4.4 在 Fedora 14 中開發 C/C++ 並使用 GCC 4.4 在 CentOS 5.2 中部署

我可以嗎 ? - 使用 GCC 4.4 在 Fedora 14 中開發 C/C++ 並使用 GCC 4.4 在 CentOS 5.2 中部署

我的生產環境運行 CentOS 5.2 和 5.5 版本。我必須使用 C/C++ 開發一個新工具並將其部署到這個生產環境。

我打算在桌面上使用 Fedora 14 和 GCC 4.4 來使用 Eclipse IDE 進行開發。然後我想將可執行檔部署到 CentOS 5.2 或 5.5 生產環境也將有 GCC 4.4。

由於 Fedora 和 CentOS 都是基於 RHEL 的,所以我認為這是可能的。

那我可以這樣做嗎?

或者我的開發桌面上是否也需要安裝 CentOS 5.2/5.5?

謝謝阿米特

答案1

如果您構建靜態二進製文件,那麼您應該能夠在幾乎任何東西上構建,並在幾乎任何地方運行。關於如何建立靜態事物的確切細節,最好在 stackoverflow 上找到答案。

不過,在不同的環境中建構似乎有點愚蠢。為什麼不自己建置一個與開發機器上的生產環境相同的虛擬機器或 chroot。這樣您就不太可能遇到奇怪/意外的不相容問題。

答案2

如果您將動態連結到 centos 上不存在的庫,那麼您還需要提供這些庫

如果您提供原始程式碼並在 centos 機器上進行編譯,您將需要提供您在程式碼中使用的任何標頭或原始檔。如果您不使用任何特殊的東西(例如您只使用 libc),則無需提供額外的程式庫。

您需要注意的另一件事是 CPU 架構 - 如果您有 64 位元程式碼,它將無法在 32 位元上運行。

答案3

這樣做,但你不應該這樣做。

最好在一個乾淨的環境中建立最終的生產包,但您的開發桌面肯定不會這樣。由於 CentOS 是免費的,因此沒有理由不擁有一個特殊的建置環境,該環境要么每次從啟動時就變得乾淨,要么從已知良好的快照中恢復。這可能需要一些設定工作,但之後,您就會知道生成的套件將正常工作,並且不會意外地出現依賴項。

而且,你的生產環境需要 gcc 嗎?什麼也沒有錯誤的擁有它本身(攻擊者將複製他們自己的二進位),但通常生產應該盡可能集中。

相關內容