2015-06-06 5 views
6

मैं एक क्यूटी परियोजना है कि जब make install चल प्रणाली, के लिए एक सेवा को स्थापित करता है। .pro फ़ाइल के प्रासंगिक भागों निम्नलिखित हैं:QT5 में qmake से 'अनइंस्टॉल करें' के दौरान कस्टम कमांड कैसे चलाएं?

init.path = /etc/init.d/ 
init.files = myservicename 

updaterc.path = /etc/init.d/ 
updaterc.extra = chmod 755 $$init.files; \ 
       update-rc.d $$init.files defaults 97 03; \ 
       service $$init.files start 

INSTALLS += target ... init updaterc 

यह सेवा सही ढंग से स्थापित करता है और फिर इसे शुरू होता है।

हालांकि, जब मैं make uninstall चलाने के लिए, हालांकि इंस्टॉल किए गए फ़ाइलों को सही ढंग नष्ट हो जाती हैं, सेवा स्थापित किया है और चल रहा है रहता है। make uninstall चलाते समय मैं सेवा को रोकना और अनइंस्टॉल करना चाहता हूं।

रोकने और सेवा की स्थापना रद्द करने के लिए आदेशों निम्नलिखित हैं:

sudo service myservicename stop 
sudo update-rc.d -f myservicename remove 

लेकिन मैं समझ नहीं .pro फ़ाइल में ऊपर बताए गए आदेशों को एकीकृत करने, ताकि qmake उन्हें समझने और में प्रासंगिक नियम बना सकते हैं मेकफ़ाइल। http://doc.qt.io/qt-5/qmake-advanced-usage.html, लेकिन यह स्थापना रद्द करने के बारे में कुछ नहीं कहा:

केवल प्रलेखन मैं इस विषय पर पाया है यह है।

उत्तर

7

.uninstall आदेश का उपयोग करने का प्रयास करें।

mytarget2.path = ~/Documents/inst 
mytarget2.target = test.txt 
mytarget2.commands = @echo "custom command" 
mytarget2.uninstall = @echo "uninstall" 
INSTALLS += mytarget2 

यह इस makefile उत्पन्न करेगा: एक

####### Install 

install_mytarget2: first FORCE 
    @test -d $(INSTALL_ROOT)/Users/mac/Documents/inst || mkdir -p $(INSTALL_ROOT)/Users/mac/Documents/inst 
    @echo custom command 

uninstall_mytarget2: FORCE 
    @echo uninstall 
    -$(DEL_DIR) $(INSTALL_ROOT)/Users/mac/Documents/inst/ 


install: install_mytarget2 FORCE 

uninstall: uninstall_mytarget2 FORCE 

FORCE: 
+0

हाँ 'uninstall' आदेश उपयोगी है, और इस मुद्दे को हल करने के लिए लगता है, मैं किसी और मामले किसी में इनाम के अंत तक इंतजार करेंगे बेहतर विचार, अन्यथा बक्षीस तुम्हारा है। आपकी मदद के लिए बहुत बहुत शुक्रिया। – user000001

संबंधित मुद्दे