오늘 42 Seoul에서 처음 C00을 시도하다가 삽질한 기록을 남겨본다.
0. 42 Header란 무엇인가?
42 헤더는 사용자 정보, 생성 및 수정 날짜가 저장되어있는 주석이다. 일부 편집기에 플러그인으로 존재한다.
vscode의 42 header 플러그인:
vim도 구글링하면 플러그인이 나온다. 직접 작성하는건...비추
1. norminette로 코딩 스타일 평가하기
norminette source_name.c
을 실행해서 별다른 에러가 없으면 통과한다.
그런데 지켜야 할 규칙이 겁나게 많다..
여기에 누군가가 에러 메시지를 정리해논 글이 있는데, 도움이 많이 된다. 그런데 러시아어라서 영어로 번역해서 보자.
이것도 vscode 플러그인이 존재한다. 틀린 부분을 빨갛게 하이라이트 해준다.
2. moulinette가 사용하는 컴파일 옵션
-Wall, -Wextra : 원래는 무시할 경고 사항들을 모두 warning으로 출력한다.
정확히 어떤 warning을 활성화 시키는 지는 다음 링크를 참고하자.
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
-Werror : 모든 warning을 error로 출력한다. 따라서 warning이 하나라도 뜨면 컴파일이 되지 않는다.
나 같은 경우에는 #include <unistd.h>를 하지 않은 채로 write를 호출해서, 컴파일 자체가 되지 않아서 0점을 받았다.
3. moulinette가 컴파일하는 방식
매뉴얼에도 나와있지만, "프로그램을 제출하세요"가 아닌 경우에는 함수만 제출해야 한다.
문제에 "함수를 작성하세요" 라고 나온 경우에는 moulinette가 다음처럼 컴파일 한다.
gcc -Werror -Wall -Wextra main.c ft_****.c
따라서 main.c는 moulinette가 자체적으로 갖고 있으며, 아마도 다음과 같이 작성되어있을 것이다.
extern void function_name(void); //function_name을 외부에서 가져온다는 의미
int main(void)
{
function_name();
}
따라서 제대로 테스트를 해보려면 위와 같은 main.c를 만들고 동일한 옵션으로 컴파일을 해보면 된다.
댓글