![make를 사용하려면 어떤 패키지가 필요합니까?](https://linux55.com/image/46540/make%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%A4%20%ED%8C%A8%ED%82%A4%EC%A7%80%EA%B0%80%20%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
가상 머신(32비트 커널) 내부의 새로운 debian wheezy에서 패키지를 컴파일하려고 합니다.
cd /tmp/
wget https://github.com/freifunk-gluon/batman-adv-legacy/archive/master.zip
rm -Rf batman-adv-legacy-master
unzip master.zip
cd /tmp/batman-adv-legacy-master/
make
make install
그런데 오류가 났어요
/bin/sh: 1: cd: can't cd to /lib/modules/3.2.0-4-686-pae/build
Makefile:35: /lib/modules/3.2.0-4-686-pae/build is missing, please set KERNELPATH
/tmp/batman-adv-legacy-master/gen-compat-autoconf.sh /tmp/batman-adv-legacy-master/compat-autoconf.h
make -C /lib/modules/3.2.0-4-686-pae/build M=/tmp/batman-adv-legacy-master PWD=/tmp/batman-adv-legacy-master modules
make: *** /lib/modules/3.2.0-4-686-pae/build: No such file or directory. Stop.
나는 또한 다음을 시도했습니다.
cd /lib/modules/$(uname -r)/
ln -s /usr/src/batman-adv-2013.4.0/ build
cd -
그런데 오류가 발생했습니다.
gen-compat-autoconf.sh /tmp/batman-adv-legacy-master/compat-autoconf.h
make -C /lib/modules/3.2.0-4-686-pae/build M=/tmp/batman-adv-legacy-master PWD=/tmp/batman-adv-legacy-master modules
make[1]: Entering directory `/usr/src/batman-adv-2013.4.0'
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/usr/src/batman-adv-2013.4.0'
패키지 몇 개를 잃어버린 것 같은데 어떤 패키지인가요?
답변1
커널 버전에 적합한 Linux 헤더 패키지를 설치해야 합니다. 메타패키지에 대해 다음을 시도해 보십시오.
# apt-get install linux-headers-686-pae
내 시스템(amd64)에서는 설치된 헤더 패키지가 누락된 디렉터리를 어떻게 가져오는지 확인할 수 있습니다 build
.
$ dpkg -L linux-headers-3.2.0-4-amd64 | grep ^/lib/modules
/lib/modules
/lib/modules/3.2.0-4-amd64
/lib/modules/3.2.0-4-amd64/source
/lib/modules/3.2.0-4-amd64/build
커널 모듈을 컴파일하려고 하기 때문에 이것이 특히 귀하의 경우와 관련이 있다는 점을 덧붙이고 싶습니다. 일반적으로 make
프로그램 종속성을 위한 헤더 패키지(자체 및 해당 언어의 컴파일러 외에도)가 필요합니다. 데비안에서는 일반적으로 <project>-dev
.
답변2
build-essential
데비안에서 패키지를 컴파일하려면 패키지가 필요합니다. 터미널에서 실행하세요.
sudo apt-get install build-essential
또한 컴파일에 필요한 일부 추가 패키지(예: gcc)도 설치됩니다. 이렇게 하면 문제가 해결될 것입니다.