कैसे निष्क्रिय करें -वरेर = दिनांक-समय / मैक्रो "__DATE__" प्रतिलिपि प्रस्तुत करने योग्य बिल्ड को रोक सकता है


13

मैं एक Netis WF2190 एडेप्टर के लिए ड्राइवर संकलित करने की कोशिश कर रहा हूं। हां, मैंने अभी उनसे नवीनतम डाउनलोड किया है।

मैं -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 "__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-timeचेतावनी gcc में नई है। 4.9 मुझे लगता है - यह संभवतया इसके द्वारा चालू किया गया है -Wall (और इसके द्वारा अंतर्निहित त्रुटि में बदल गया है -Werror)। आप फार्म का उपयोग करके इसे स्पष्ट रूप से बंद करने का प्रयास कर सकते हैं -Wno-अर्थात -Wno-error=date-timeइसमें जोड़ा जा CFLAGSरहा है लेकिन मैं अनुमान लगा रहा हूं और इसका परीक्षण नहीं कर सकता।
स्टीलडाइवर

@steeldriver हाँ, यह काम किया, धन्यवाद! इसका उत्तर के रूप में प्रस्तुत करने के लिए आपका स्वागत है और मैं इसे स्वीकार करूंगा। समस्या का दूसरा हिस्सा था मुझे एहसास नहीं था कि इंस्टॉल स्क्रिप्ट हर बार स्रोत को फिर से निकाल रही थी और ओवरफाइटिंग बदलाव मैंने मेकफाइल में किए थे।
एंडी

जवाबों:


14

दिनांक-समय की चेतावनी gcc में नई है ४.१ मुझे लगता है - यह संभवतः -Wall( द्वारा अनुमानित रूप से एक त्रुटि में बदल गया है -Werror)।

आप -Wno-प्रपत्र को जोड़कर अर्थात जोड़कर इसे स्पष्ट रूप से बंद करने का प्रयास कर सकते हैं

-Wno-error=date-time 

को CFLAGS


क्या, विशेष रूप से, किसी को ऐसा करने के लिए टर्मिनल में टाइप करने की आवश्यकता है?
हैक-आर

1
Hi @steeldriver क्या यह सही वाक्यविन्यास है: CFLAGS + = "-वॉन-एरर = डेट-टाइम"
नायब बाशा सैद

3

मैंने "Wno-error = date-time" लाइन को CFLAGS में जोड़ने के लिए काफी बार कोशिश की, लेकिन यह काम नहीं कर पाया।

मेरे लिए अब तक का सबसे आसान समाधान उस फ़ाइल को ढूंढना था जो निष्पादित करके "__DATE__" लाइन का उत्पादन कर रही थी

grep -r "__DATE__"

जो (मेरे साथ काम कर रहे स्रोत कोड के लिए) ने मुझे फ़ाइल दी

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

मैंने बस इसे उद्धरण चिह्नों को हटाकर चर के बिना स्ट्रिंग में बदल दिया, अर्थात

"Compiled on __DATE__ for kernel %s"

संकलन तब आगे बढ़ने में सक्षम था

संपादित करें: जैसा कि पहले उल्लेख किया गया है, make cleanकॉन्फ़िगर चलाने और बनाने से पहले उपयोग करें , या इससे भी बेहतर, ज़िप / टार फ़ाइल से एक नया संस्करण निकालें


1

Rtw_debug.c फ़ाइल से पंक्ति 66 को हटाकर आक्रामक मैक्रो को निकालना बेहतर हो सकता है।

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

अब आप बिल्ड के साथ जारी रख सकते हैं:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.