■ error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments 오류


(1) 원인
: GCC 4.3.2 버전 이상의 GCC 컴파일러를 사용할 때 발생

○ GCC 4.3.2 버전 이상에서는 open() 함수의 인자(argument) 가 2 개에서 3 개로 재정의 되었고, 이로 인해 이전 버전에서 정상적으로 빌드되었던 코드들이 GCC 4.3.2 이상의 버전에서는 해당 오류를 출력하게 된다.


(2) 해결방법
: 빌드에서 발생하는 open() 함수를 모두 찾아 수정해야한다. GCC 컴파일러를 통해 오류 발생 파일과 라인을 확인 할 수 있다.

○ Example
- Error code

open(path, O_WRONLY | O_TRUNC | O_CREAT);

- Modified code
open(path, O_WRONLY | O_TRUNC | O_CREAT, 644);

by 민트앤라떼 2012. 3. 22. 11:56