Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Mengapa Linux perlu menyusun kod sumber?

Mengapa Linux perlu menyusun kod sumber?

青灯夜游
青灯夜游asal
2023-03-17 10:21:252614semak imbas

Sebab: 1. Terdapat banyak versi Linux, tetapi setiap versi menggunakan perisian atau versi kernel yang berbeza, dan persekitaran yang bergantung pada pakej binari mungkin tidak semestinya dapat berjalan seperti biasa, jadi kebanyakan perisian menyediakan secara langsung kod sumber untuk diproses. 2. Mudah untuk menyesuaikan untuk memenuhi keperluan yang berbeza. 3. Mudah untuk operasi dan penyelenggaraan dan penyelenggaraan pembangun boleh dibungkus sebagai binari, tetapi pembungkusan perisian ini memerlukan kerja tambahan yang mahal, termasuk penyelenggaraan, jadi jika ia adalah kod sumber, pengeluar perisian akan mengekalkannya secara langsung.

Mengapa Linux perlu menyusun kod sumber?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Mengapa Linux perlu menyusun kod sumber?

Secara umumnya, perisian kami dipasang dalam dua cara: yum (rpm) dan kompilasi kod sumber kita perlukan kod sumber? Kompil dan pasang beberapa perisian? Terdapat beberapa sebab untuk memilih kod sumber untuk menyusun dan memasang perisian:

  • Untuk memenuhi platform pengendalian yang berbeza, kami mempunyai banyak versi Linux, tetapi setiap versi menggunakan perisian atau versi kernel yang berbeza, dan Persekitaran yang bergantung kepada pakej binari kami mungkin tidak semestinya berjalan seperti biasa, jadi kebanyakan perisian menyediakan kod sumber secara langsung!

  • Mudah untuk disesuaikan untuk memenuhi keperluan yang berbeza. Banyak kali perisian yang kami perlukan boleh disesuaikan. Kebanyakan kod binari boleh dipasang dengan satu klik darjah kebebasan tidak tinggi!

  • Ia mudah untuk operasi dan penyelenggaraan, dan kod sumber kami boleh dibungkus sebagai binari, tetapi pembungkusan perisian ini memerlukan kerja tambahan yang mahal, termasuk penyelenggaraan, jadi jika Jika. ia adalah kod sumber, pengeluar perisian akan mengekalkannya secara langsung, tetapi jika ia binari, ia biasanya disediakan oleh penerbit Linux.

Tutorial kod sumber kompilasi Linux

Hampir semua perisian di Linux dibenarkan GPL, jadi hampir semua perisian akan menyediakan kod sumber.

Untuk dilaksanakan pada Linux, perisian mestilah fail binari Oleh itu, apabila kita mendapat kod sumber perisian, kita perlu menyusunnya ke dalam fail binari untuk dijalankan di Linux.

1 Proses penyusunan perisian

Menyusun kod sumber ke dalam fail binari yang boleh dijalankan di Linux memerlukan dua langkah:

<.>
  • Gunakan pengkompil gcc untuk menyusun kod sumber ke dalam fail objek

  • Gunakan pengkompil gcc sekali lagi untuk memautkan fail objek ke dalam fail binari

Proses ini nampak mudah, tetapi tidak. Kod sumber perisian sering dirangkumkan dalam berbilang fail sumber Selain itu, fail ini mempunyai kebergantungan yang rumit, dan penyusunan perlu dijalankan mengikut perintah yang ditetapkan, yang sudah pasti meningkatkan kesukaran penyusunan. Nasib baik, arahan buat boleh membantu kami memudahkan proses penyusunan.

Keseluruhan proses kompilasi dipekatkan dalam fail Makefile (memberitahu arahan make cara menyusun dan memautkan atur cara Apabila arahan make dilaksanakan, make akan mencari fail Makefile dalam direktori semasa, dan berdasarkan fail Ia diperlukan untuk melengkapkan keseluruhan proses penyusunan.

Fail Makefile dijana oleh arahan konfigurasi. Apabila melaksanakan perintah konfigurasi, konfigurasi akan menjana Makefile secara dinamik yang sesuai untuk sistem ini berdasarkan persekitaran sistem semasa untuk digunakan oleh arahan make.

2. Langkah pemasangan kod sumber Linux

  • Dapatkan kod sumber

    Muat turun kod sumber perisian ke /usr/ local/ dan nyahzipnya.

  • Lihat fail INSTALL dan README

    Selepas penyahmampatan, lihat fail INSTALL dan README Kedua-dua fail ini memperkenalkan secara terperinci kaedah pemasangan dan langkah berjaga-jaga perisian ini.

  • Buat Makefile

    Laksanakan perintah konfigurasi untuk menjana Makefile.

  • Kompil

    Laksanakan arahan make clean;make untuk menyusun kod sumber ke dalam fail binari.
    PS: Perintah buat bersih digunakan untuk mengosongkan fail sasaran yang dijana oleh kompilasi terakhir. Langkah ini adalah pilihan, tetapi untuk memastikan kejayaan penyusunan, adalah lebih baik untuk menambahnya. Cegah kegagalan penyusunan disebabkan oleh fail objek yang tinggal dalam perisian.

  • Pemasangan

    Laksanakan arahan make install untuk memasang fail binari yang disusun dalam langkah sebelumnya ke dalam direktori yang ditentukan.

3. Demonstrasi pemasangan

1) Masukkan /usr/local/ dan cipta direktori memcached :

cd /usr/local/
mkdir memcached

2) Muat turun kod sumber memcached

wget http://memcached.org/files/memcached-1.4.29.tar.gz

3) Nyahzip kod sumber

tar -zxvf memcached-1.4.29.tar.gz

4) Laksanakan konfigurasi untuk menjana fail Makefile

./configure --prefix=/usr/local/memcached/
Pada masa ini, fail Makefile akan dijana dalam direktori semasa.

Nota: Parameter –prefix menentukan direktori pemasangan perisian. Apabila arahan make install dilaksanakan, perisian akan dipasang dalam laluan ini Jika parameter ini tidak ditentukan dan awalan tidak ditentukan, fail boleh laku akan diletakkan dalam /usr/local/bin secara lalai, dan perpustakaan. fail akan diletakkan dalam /usr/local/lib secara lalai , fail konfigurasi diletakkan dalam /usr/local/etc secara lalai. Fail sumber lain diletakkan dalam /usr/local/share.

5) Laksanakan make, baca arahan daripada Makefile, dan susun kod sumber

make

此时make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下。

执行这一步之前可以先进行清理作业:

make clean && make uninstall

6)执行make install,将软件安装至指定目录

make install

此时二进制文件会被安装到先前configure prefix参数设置的路径中去。
安装完成!

4、cmake命令(了解)

cmake就是一个与make同级别的编译工具,只不过它依靠的不是Makefile作为编译规则,而是根据CMakeLists.txt来编译的。
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。

CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Mengapa Linux perlu menyusun kod sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn