-Werror = tarih-saat / “__DATE__” makrosu nasıl devre dışı bırakılabilir tekrarlanabilir sürümleri önleyebilir


13

Netis WF2190 adaptörü için bir sürücü derlemeye çalışıyorum. Evet, en son indirdim.

Derlemede nasıl devre dışı bırakabilirim -Werror=date-time? Yapı komut dosyasında hiçbir yerde bulamıyorum, bu yüzden bazı küresel varsayılan ayar olması gerektiğini anlıyorum. Açıkçası kod sadece derleme tarihini / saatini çıktıya gömmeye çalışıyor, bu nedenle bu uyarıyı devre dışı bırakmakla ilgili bir sorun olmamalıdır.

İşte hata olarak işlendiğim bazı uyarılar:

/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
cc1: some warnings being treated as errors

2
date-timeUyarı gcc 4.9 yeni olan Bence - muhtemelen tarafından örtülü olarak açıldığında -Wall (tarafından örtülü bir hata içine ve döndü -Werror). Açık yani yani eklenen formu kullanarak kapatmayı deneyebilirsiniz ama tahmin ediyorum ve test edemez. -Wno--Wno-error=date-timeCFLAGS
— Steeldriver

@steeldriver evet, işe yaradı, teşekkür ederim! Cevap olarak gönderebilirsiniz. Kabul ediyorum. Sorunun diğer kısmı, yükleme komut dosyasının her seferinde kaynağı yeniden ayıkladığının ve makefile'da yaptığım değişikliklerin üzerine yazdığını fark etmemiştim.
— Andy

Yanıtlar:


14

Tarih-saat uyarısı gcc 4.9 yeni olduğunu düşünüyorum - muhtemelen örtük olarak -Wallaçık (ve örtük olarak bir hataya dönüştü -Werror).

-Wno-Formu kullanarak açıkça ekleyerek kapatmayı deneyebilirsiniz.

-Wno-error=date-time 

için CFLAGS.


Bunu yapmak için terminale ne yazması gerekir?
— Hack-R

1
Merhaba @steeldriver Bu doğru sözdizimi mi: CFLAGS + = "-Wno-error = date-time"
— Nayab Basha Sayed

3

Birkaç kez "Wno-error = date-time" satırını CFLAGS'a eklemeyi denedim, ancak işe yaramadı.

Benim için açık ara en kolay çözüm, "__DATE__" satırını üreten dosyayı yürüterek bulmaktı.

grep -r "__DATE__"

hangi (birlikte çalıştığım kaynak kodu için) bana dosya verdi

acore/info.patch:+          "Compiled on " __DATE__ " for kernel %s"

Ben sadece tırnak işaretleri, yani kaldırarak değişken olmadan bir dize değiştirdi

"Compiled on __DATE__ for kernel %s"

Derleme daha sonra devam edebildi

DÜZENLEME: Daha önce de belirtildiği gibi make clean, config / make komutunu çalıştırmadan önce kullanın veya daha da iyisi zip / tar dosyasından yeni bir sürümü çıkarın


1

Rtw_debug.c dosyasından 66 satırını silerek rahatsız edici makroyu kaldırmak daha iyi olabilir.

sed -i -e '66d' /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c

Şimdi derlemeye devam edebilirsiniz:

cd /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/
sudo make clean
make
sudo make install

sudo temiz yapmak önemlidir
— mchid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.