Apabila menjalankan pecl install grpc, anda mungkin menghadapi runtuhan mesej amaran seperti ini:
#7 67.72 /tmp/pear/temp/grpc/src/core/lib/promise/detail/promise_factory.h:174:5: warning: 'always_inline' function might not be inlinable [-Wattributes] #7 352.5 /tmp/pear/temp/grpc/src/core/lib/event_engine/forkable.h:61:34: warning: 'unused' attribute ignored [-Wattributes]
Terdapat beratus-ratus amaran ini, membanjiri log anda. Ini telah menjadi masalah terutamanya semasa penggunaan, di mana saluran paip CI/CD akan melebihi had log, menyebabkan ralat dan menghentikan proses.
Mencari mesej amaran dalam talian menghala ke GCC, GNU Compiler Collection.
Ternyata amaran ini dijana oleh pengkompil semasa membina kod sumber gRPC. Memandangkan amaran berasal daripada kod sumber gRPC, pengguna tidak boleh membetulkan kod sumber secara langsung untuk menyekat amaran.
Nasib baik, GCC menyediakan beberapa pilihan untuk menyekat mesej amaran, yang boleh anda hantar kepada pengkompil semasa proses binaan:
Pilihan Amaran dalam Dokumentasi GCC
Walau bagaimanapun, tiada cara mudah untuk meneruskan pilihan ini secara langsung semasa menjalankan pecl install grpc. Jika anda mengetahui salah satu daripadanya, sila beritahu saya—saya akan meraikannya dengan air mata kegembiraan! ?
Jadi, bagaimana sekarang?
Jawapan datang kepada saya daripada benang StackOverflow: Daripada membiarkan pecl install mengendalikan segala-galanya, anda boleh memecahkan proses kepada langkah-langkah yang lebih kecil dan lulus pilihan semasa fasa penyusunan.
Rujukan: StackOverflow
Memandangkan gRPC ditulis dalam C , kami boleh menggunakan pembolehubah persekitaran seperti CFLAGS dan CXXFLAGS untuk menentukan pilihan yang menyekat amaran semasa penyusunan:
Wiki Gentoo tentang Pengoptimuman GCC
Mari andaikan gRPC sedang dipasang dalam Dockerfile.
RUN pecl install grpc
RUN pecl download grpc \ && tar xzf $(ls grpc-*.tgz | head -n 1) \ && cd $(ls -d grpc-*/ | head -n 1) \ && phpize \ && ./configure --with-php-config=/usr/local/bin/php-config \ && make -e CFLAGS="-Wno-attributes -Wno-unused-parameter -Wno-deprecated-declarations -Wno-return-type" CXXFLAGS="-Wno-attributes -Wno-unused-parameter -Wno-deprecated-declarations -Wno-return-type" \ && make install
Arahan selepas meniru tindakan pemasangan pecl secara dalaman, tetapi dengan lebih kawalan. Memecahkan proses mendedahkan betapa banyak pengendalian pemasangan pecl di belakang tabir—mengagumkan!
Amaran muncul semasa fasa pembuatan, jadi saya lulus pilihan penindasan melalui pembolehubah persekitaran CFLAGS dan CXXFLAGS:
make -e CFLAGS="-Wno-attributes -Wno-unused-parameter -Wno-deprecated-declarations -Wno-return-type" CXXFLAGS="-Wno-attributes -Wno-unused-parameter -Wno-deprecated-declarations -Wno-return-type"
Untuk menentukan pilihan penindasan yang hendak digunakan, lihat pada penghujung mesej amaran. Anda akan sering melihat pembayang seperti [-Wattributes] atau [-Wunused-parameter]. Tambahkan tidak pada permulaan ini, cth., -Wno-atribut atau -Wno-unsed-parameter, untuk menyekatnya.
Untuk butiran lanjut, rujuk dokumentasi rasmi:
Pilihan Amaran dalam Dokumentasi GCC
Dengan pendekatan ini, saya berjaya melarikan diri daripada paya mesej amaran gRPC. Walau bagaimanapun, ini tidak menyelesaikan sepenuhnya isu had log CI/CD, yang akan saya tangani dalam siaran akan datang.
Jika artikel ini membantu walaupun satu orang melarikan diri daripada paya mesej amaran gRPC, saya akan gembira! ?
Atas ialah kandungan terperinci Cara Mengendalikan Mesej Amaran Berlebihan Semasa Menjalankan `pecl install grpc`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!