簡體   English   中英

僅適用於Linux的g ++跨平台編譯

[英]g++ compiling for linux only cross-platform

我對設置遠程服務器以運行一些密集的計算感興趣。 由於各種原因,我可能想運行一個與我的開發箱不同的Linux發行版。 假設硬件是正確的目標,並且我將自己限制在ISO C庫中,那么在Linux發行版上運行與g ++編譯的代碼不同的可執行文件時,會遇到任何問題嗎?

在我的特定情況下,我的開發箱是最新的基於Ubuntu的。 是否有任何Linux發行版可以掛起基於Ubuntu的g ++編譯的代碼? 選擇遠程服務器發行版時,我應該尋找什么來確保無故障運行?

我在筆記本電腦和台式機上運行了大量為我的工作而開發的計算密集型代碼。 直到最近我不得不更換筆記本電腦之前,它是一台速度較慢的計算機,其內存比台式機少得多,因此與您所描述的情況類似。

如果您的代碼計算量很大,那么您可能希望針對正在運行的任何計算機(無論是開發箱還是遠程服務器)對其進行優化。 我認為最簡單的方法是為代碼設置一個makefile,以便可以將makefile和源代碼復制到遠程服務器上,然后只要dev框和服務器都使用相同版本的gcc以及任何您的代碼需要其他庫依賴項,則只需發出make命令即可在遠程服務器上構建代碼。 如果您需要有關makefile的快速教程,當我第一次開始使用它們時, 對我很有幫助。

用這種方式做事的好處是,您可以在一台計算機上使用較小的數據集,較低的分辨率網格或進行任何減少計算強度的操作來開發和測試代碼。 然后,一旦知道它的工作原理,就可以將其轉移到功能更強大的計算機上,以實際運行更強大的版本。 通過調用make命令,g ++隨后可以使用-march=native-mtune=native類的標志來確保代碼針對遠程服務器的CPU進行了優化,並且由於它是在該計算機上編譯的,因此您不必擔心在一台計算機上構建的可執行文件是否只能在另一台計算機上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM