저는 응용 프로그램에 간단한 Makefile을 만들었습니다. 설치 후 udev 규칙을 다시 시작해야합니다.Makefile에서 udev를 다시 시작하십시오.
#1 SMP Debian 3.2.46-1+deb7u1
ifeq (Debian,Debian) \
@echo "Estoy dentro del if"
/bin/sh: 1: Syntax error: word unexpected (expecting ")")
make: *** [postinstall] Error 2
문제가 어디 있는지 모르겠어요 :
INSTALLDIR=/pkt/bin
OS:=$(shell uname -v)
LBITS:=$(shell getconf LONG_BIT)
LIBDIR=/usr/lib
ifeq ($(LBITS),64)
LIBDIR64=/usr/lib64
else
LIBDIR64=/usr/lib
endif
all: usbupdater
configuracion.o: configuracion.cpp
g++ -c configuracion.cpp
main.o: main.cpp
g++ -c main.cpp
usbupdater: main.o configuracion.o
@echo "$(PATH)"
@echo "$(LIBDIR)"
g++ main.o configuracion.o $(LIBDIR)/libReadINI.a $(LIBDIR64)/chilkat/li
bchilkat-9.4.1.a -lpthread -lresolv -o usbupdater
clean:
rm -rf *.o *.cgh $(INSTALLDIR)/usbupdater
install:
mv usbupdater $(INSTALLDIR)/usbupdater
cp -rf 99-persistent-usb.rules /etc/udev/rules.d/99-persistent-usb.rules
postinstall:
@echo "$(OS)"
ifeq ($(findstring Debian,$(OS)),Debian) \
@echo "Estoy dentro del if"
$(shell '/etc/init.d/udev' restart) \
else \
@echo "Estoy dentro del else"
$(shell ls -l) \
endif
문제는 내가 사후이 만들어 입력 할 때 나에게이 오류를 보여주고 있다는 점이다. 필자는 uname -v 결과를 데비안과 비교하여 udev restart 또는 udevcontrol reload_rules가 Opensuse OS 인 경우이를 비교합니다.
미리 감사드립니다. 내 영어를 유감스럽게 생각합니다.
(그리고 우리는 이것이 다른 make가 난 ifeq' 그'을 지원하지 않기 때문에 GNU 만들 알고 :
내가로 작성합니다 이를 인식하는)는 'else'명령을 지원하지 않습니다. – MadScientist
나는 항상 ifeq가 꽤 표준이라고 생각했지만, 그것은 당신이 말하는 것처럼 보입니다. 감사. – keltar