-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.