Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
[Linux] procfs, procseq 컴파일 에러 (error: variable '' has initializer but incomplete type)
EVEerNew 2022. 11. 14. 12:35
Linux에서 procfs와 procseq 관련 C언어 소스코드를 컴파일하면 다음과 같은 오류가 발생할 때가 있다.
error: variable 'proc_ops' has initializer but incomplete type
해당 오류를 문법적인 문제라 생각했는데, 사실 Linux 커널에서 procfs와 procseq를 위해 사용하는 proc_ops는 버전에 따라 사용이 가능하다.
출처: https://embetronicx.com/tutorials/linux/device-drivers/procfs-in-linux/
위의 답글에 따르면 Linux 커널의 버전이 5.5 이상에서만 struct proc_ops 를 사용할 수 있다고 안내되어 있다.
다음의 명령어로 본인의 linux 커널 버전을 확인해보니, 5.4.~ 버전으로 확인되었다.
$ uname -r
따라서 5.5 이상의 버전을 새로 설치해주자.
참조: https://codechacha.com/ko/ubuntu-update-kerenl/
다음 명령어로 설치 가능한 5.5... 버전 이상의 리눅스 커널을 설치해주자.
$ sudo apt-cache search linux-image-5.
본인의 경우는 5.8.0-63 버전을 설치했다.
설치 재부팅을 하더라도 build가 설치되지 않아 다음과 같은 에러가 발생할 수 있다.
/lib/modules/<version>/build/ not existent
이때는 커널 버전에 맞는 linux header를 설치하고 재부팅 해주자.
apt install linux-headers-5.8.0-63-generic
이제 make 명령어로 정상적으로 컴파일이 되는 것을 확인할 수 있다.
'개발 > 기타' 카테고리의 다른 글
왜 Web server와 WAS의 분리가 필요할까? (1) | 2024.07.14 |
---|---|
SQL과 데이터베이스 (0) | 2024.01.25 |
[Github Actions] paths 로 폴더 별로 트리거 하기 (0) | 2023.11.18 |
Slack bot으로 유저에게 1:1 DM 보내기 (0) | 2023.10.21 |
Selenium으로 웹 크롤링 시도하기 (0) | 2023.07.26 |