2015-06-06 10 views
6

Tôi có một dự án QT cài đặt dịch vụ cho hệ thống, khi chạy make install. Các phần có liên quan của tệp .pro là như sau:Làm thế nào để chạy các lệnh tùy chỉnh trong khi `thực hiện gỡ cài đặt` từ qmake trong QT5?

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 

Cài đặt dịch vụ này một cách chính xác và sau đó khởi động dịch vụ.

Tuy nhiên, khi tôi chạy make uninstall, mặc dù các tệp đã cài đặt bị xóa chính xác, dịch vụ vẫn được cài đặt và đang chạy. Tôi muốn dịch vụ được dừng lại và gỡ cài đặt khi chạy make uninstall.

Các lệnh cho dừng và gỡ bỏ cài đặt các dịch vụ như sau:

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

Nhưng tôi không thể tìm ra cách để tích hợp các lệnh trên trong .pro tập tin, do đó qmake có thể hiểu được họ và tạo ra các quy tắc liên quan Makefile.

Tài liệu duy nhất tôi tìm thấy về chủ đề này là: http://doc.qt.io/qt-5/qmake-advanced-usage.html, nhưng nó không nói bất cứ điều gì về việc gỡ cài đặt.

Trả lời

7

cố gắng sử dụng lệnh .uninstall.

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

nó sẽ tạo ra makefile này:

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

Có 'cái lệnh uninstall' là hữu ích, và dường như để giải quyết vấn đề, tôi sẽ đợi cho đến khi kết thúc tiền thưởng trong trường hợp bất kỳ ai khác có ý tưởng tốt hơn, nếu không tiền thưởng là của bạn. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn. – user000001

Các vấn đề liên quan