.. _Building Linux from source: ################## Linux鐗堢殑鐢熸垚杩囩▼ ################## 鑾峰彇婧愪唬鐮� ======================= 鎴戜滑浣跨敤git鍜孏itHub鏉ョ淮鎶ゆ簮浠g爜锛岄鍏堝厠闅嗕唬鐮佸埌鏈湴锛� .. code:: bash git clone --recursive https://github.com/ethereum/cpp-ethereum.git cd cpp-ethereum 杩欎釜鍙傛暟闈炲父閲嶈 ``--recursive`` 杩欎釜鍙傛暟闈炲父閲嶈锛屽畠鎸囨槑浜嗙紪璇戝伐绋嬫墍蹇呴渶鐨勫瓙妯″潡锛屽鏋滄病鏈変娇鐢ㄨ繖涓弬鏁拌€屽鑷寸紪璇戞椂鍙戠敓閿欒锛屼綘鍙互浣跨敤涓嬮潰鐨勫懡浠ゆ潵鑾峰彇瀛愭ā鍧楀讥琛ラ敊璇細 ``git submodule update --init``. CMake ===== 鎴戜滑浣跨敤CMake鏉ユ帶鍒跺伐绋嬬殑閰嶇疆锛屽敖鍙兘鏂扮殑鐗堟湰鏄繀椤荤殑锛堝啓杩欑瘒鏂囨。鏃舵渶鏂扮殑CMake鐗堟湰鍙锋槸3.4锛夈€傛垜浠帹鑽愪粠涓嬮潰鐨勯摼鎺ヤ笅杞藉拰瑙e帇鏈€鏂板彂甯冪殑CMake鐗堟湰锛� https://cmake.org/download/ **鏇夸唬鏂规** 涓婁竴姝ヨ幏鍙栫殑浠g爜鐩綍涓寘鍚悕涓� `install_cmake.sh <https://github.com/ethereum/cpp-ethereum/blob/develop/scripts/install_cmake.sh>`_ 鐨勮剼鏈紝杩欎釜鑴氭湰鍙互甯綘瀹夎鎸囧畾鐗堟湰鐨凜Make鍒皃refix鍙傛暟鎸囧畾鐨勭洰褰曚笅锛屼綘鍙互杩欐牱浣跨敤锛�:: ``scripts/install_cmake.sh --prefix /usr/local`` 瀹夎渚濊禆椤� ======================= 涓嬮潰鍒楀嚭鐨� *搴撴枃浠�* 闇€瑕佽棰勫厛瀹夎鍦ㄧ郴缁熶腑锛� - boost - leveldb - curl - microhttpd - miniupnp - gmp 杩欎簺涓€鑸兘鍙互閫氳繃杞欢瀹夎绠$悊鍣ㄨ繘琛屽畨瑁咃紝渚嬪鍩轰簬Debian鐨勭郴缁熷彲浠ヤ娇鐢ㄥ涓嬪懡浠わ細 .. code:: bash sudo apt-get install libboost-all-dev libleveldb-dev libcurl4-openssl-dev libmicrohttpd-dev libminiupnpc-dev libgmp-dev 鎴栧熀浜嶳edHat鐨勭郴缁燂細 .. code:: bash dnf install boost-devel leveldb-devel curl-devel libmicrohttpd-devel miniupnpc-devel gmp-devel Linux has a horror-show of fragmentation when it comes to packaging systems. 鎴戜滑鎻愪緵涓€涓竴閿剼鏈潵寮曢亾浣跨敤鍏朵粬鍙戣鐗堢郴缁熺殑鐢ㄦ埛閫氳繃杩欑墖闆峰尯锛屽畠浼氳嚜鍔ㄨ瘑鍒敤鎴峰畨瑁呯殑鐗堟湰锛屽苟涓斿畨瑁呯郴缁熸墍闇€瑕佺殑澶栭儴渚濊禆鍖呫€傝繖鏄釜涓嶅钩鍑$殑浠诲姟锛屾垜浠笉鎯宠鐢ㄦ埛鍘昏嚜宸辨浛鎹粬浠墍闇€瑕佺殑鍐呭銆� .. code:: bash scripts/install_deps.sh 鎴戜滑浣跨敤鐩稿悓鐨勮剼鏈疄鐜拌嚜鍔ㄥ寲鏋勫缓鍜屾寔缁泦鎴愶紝瀹冧細琚笉鏂祴璇曪紝杩欏浜嶮acOS灏や负閲嶈锛孒omebres鏄竴涓笉鏂洿鏂扮殑鐩爣銆� 濡傛灉浣犲皾璇曚娇鐢ㄤ簡瀹冿紝骞朵笖鍑虹幇浜嗕换浣曢棶棰橈紝璇锋妸浣犵殑璇︾粏淇℃伅鎻愪氦鍒帮細 `report the problem <https://github.com/ethereum/cpp-ethereum/issues/new>`_ 骞朵笖甯︿笂浣犵殑鍙戣鐗堢殑璇︾粏淇℃伅锛屽寘鎷絾涓嶉檺浜庡悕绉般€佺増鏈彿绛夎繖浜涢噸瑕佷俊鎭紝鎴戜滑鍙互涓€璧疯В鍐充綘閬囧埌鐨勯棶棰樸€� 鎴戜滑杩樻湁鏇村鐨勮鏄庢枃妗o紝閽堝 Fedora, openSUSE and Arch Linux 锛堟洿澶氫俊鎭弬瑙佷笅鏂囷級锛屽鏋滀綘杩樹娇鐢ㄥ埆鐨勫彂琛岀増鏈紝璇疯鎴戜滑鐭ラ亾鎴戜滑浼氬敖閲忚瀹冨彲浠ュ伐浣溿€� .. toctree:: linux-fedora.rst linux-opensuse.rst linux-arch.rst 閫氳繃鍛戒护琛岃繘琛岀敓鎴� ================================================================================ 褰撲綘瀹屾垚浜嗕笂闈㈡墍鍒楀嚭鐨勪緷璧栭」鐨勫畨瑁咃紝灏卞彲浠ヤ娇鐢ㄤ笅闈㈢殑鍛戒护杩涜浜嗙紪璇戜簡锛� .. code:: bash mkdir build Make a directory for the build output cd build Switch into that directory cmake .. To generate a makefile. make To build that makefile on the command-line make -j<number> (or) Execute makefile with multiple cores in parallel 32浣嶇殑Linux缂栬瘧 =================== 鎴戜滑鍦ㄥ緢澶�32浣嶇殑Linux鍙戣鐗堜腑锛屾垚鍔熺敓鎴愬苟杩愯浜嗕互澶潑瀹㈡埛绔紝鏈€澶х殑鎸戞垬鏉ヨ嚜浜�32浣嶇郴缁熷彲鐢ㄧ殑澶栭儴渚濊禆椤癸紝鏈€澶х殑闇€姹傚彲鑳芥潵鑷簬鍍忔爲鑾撴淳杩欐牱鐨勫崟鏉跨數鑴戙€� 浣犻渶瑕侀噾搴窲IT鍜岄噸閲忕骇鐨勪緷璧栭」LLVM锛孍VMJIT鍙敮鎸亁86_64鏋舵瀯锛岃繖鏍锋墠鑳借cpp-ethereum鍦�32浣嶅钩鍙颁笂杩愯銆傛兂瑕佺鐢↗IT锛屼綘闇€瑕佸湪Makefile闃舵浣跨敤涓嬮潰鐨勫懡浠� .. code:: bash cmake .. -DEVMJIT=Off