2017-05-04 151 views
0

我無法理解C++ makefile。 makefile在重新啓動時啓動程序。我想要的是它在啓動和重啓時啓動程序的啓動。我也想添加主機名(因爲這是程序需要的參數)。C++ makefile安裝:啓動時啓動程序並重啓

我的嘗試:

  • 加$(殼主機名)到progn這個
  • 添加$(殼主機名)到該行:CP的/ etc/......在@test -s重啓

但因爲我無法理解這些線路,它只是猜測..

安裝生成文件的一部分:

PROGN=myProgram 

setup: 
@install -m 755 -d \ 
    $(DESTDIR)/usr/bin \ 
    $(DESTDIR)/etc/$(PROGN)/samples \ 
    $(DESTDIR)/etc/udev/rules.d 
@cp bin/$(PROGN) $(DESTDIR)/usr/bin 
@cp sample_profiles/* $(DESTDIR)/etc/$(PROGN)/samples 
@cp udev/$(PROGN).rules $(DESTDIR)/etc/udev/rules.d 
@test -s /usr/bin/systemd-run && \ 
    install -m 755 -d $(DESTDIR)$(SYSTEMDDIR)/system && \ 
    cp systemd/$(PROGN)-reboot.service $(DESTDIR)$(SYSTEMDDIR)/system 

install: setup 
@test -s /etc/$(PROGN)/profile || \ 
    cp /etc/$(PROGN)/samples/group_keys /etc/$(PROGN)/profile 
@test -s /etc/$(PROGN)/reboot || \ 
    cp /etc/$(PROGN)/samples/all_off /etc/$(PROGN)/reboot 
@udevadm control --reload-rules 
@test -s /usr/bin/systemd-run && \ 
    systemctl daemon-reload && \ 
    systemctl enable $(PROGN)-reboot 
+0

如果您刪除@引導命令,您將看到在終端中運行的命令。從而更容易看到正在發生的事情並進行調試(或查看您的更改)。 – sycko

+0

通過Makefile進行程序啓動的配置與C或C++無關。您可能會考慮刪除這些標籤。 – Gerhardh

+0

@Gerhardh:makefile是用於C程序的,我認爲知道你正在處理的是什麼樣的makefile – Janoshh

回答

0

我通過刪除最後一個@test部分並在rc.local文件(raspbian jessie lite)中調用腳本來「解決」啓動時自動引導的問題。我刪除makefile的最後一部分的原因是因爲當我安裝時,它會啓動程序來設置默認設置,但是我在代碼中刪除了該部分,並且安裝凍結。