[CS50] cs50.h 를 로컬 vscode 에서 사용하기 for MacOS

devheyrin·2022년 3월 28일
2

CS50

목록 보기
1/2

지난주부터 스터디원들과 함께 CS50 수업을 듣고 있다!
네이버 부스트코스에서 자막+친절한 설명을 함께 제공해주셔서 매우 쾌적한 환경에서 공부하고 있음..
강의 링크 ➡️ https://www.boostcourse.org/cs112/joinLectures/41307

C언어 수업을 들어가면서 한 가지 귀찮은점이 발생했는데.
수업에서 실습에 사용하는 cs50라이브러리를 사용하려면 라이브러리가 설치된 cs50 sandbox 를 이용해야 한다는 것..
처음엔 그냥 사용했는데 내 맥북의 문젠지 서버 문젠지 sandbox 가 너무 느려져서 두고볼수가 없었다.
그리고 최근 새로 단장한 terminal 뽕을 뽑고 싶은 마음에..^^ vscode 에서 cs50 라이브러리를 사용할 수 있는 방법을 찾아보았다.
역쉬 부스트코스에서 cs50 라이브러리 관련 문서 링크를 올려주셔서 찾아가보았다!
https://cs50.readthedocs.io/libraries/cs50/c/

방법

  1. https://github.com/cs50/libcs50/releases 로 가서 zip 파일을 다운로드받는다.
  2. 다운로드 받은 위치로 가서 압축을 풀어준다.
  3. 터미널을 켜서 libcs50 폴더가 있는 위치로 이동한다. 내 경우에는 다음과 같이 입력했다.
  4. sudo make install 명령을 치면 다음과 같이 설치된다! Password 가 뜨면 비밀번호를 입력해주면 된다.
  5. vscode 로 돌아가서 확장자가 .c 인 파일을 만들고, #include <cs50.h> 를 해보면 더 이상 빨간 줄이 뜨지 않는다! 자동완성도 사용할 수 있다.

make *** 사용하기

그런데 문제가 하나 발생했다.. 컴파일을 위해 make 명령을 사용할 수 없다는 것!!!

clang: error: linker command failed with exit code 1 (use -v to see invocation)

에러 메시지를 보아하니 -lcs50 으로 링크를 제대로 못 해주는 것 같았고, 관련 설정파일의 include 에도 추가해보았는데 계속 실패했다.

clang string.c -o string -lcs50

이렇게 하나하나 입력해 주면 가능은 했지만.. 귀찮았다...

po구글링wer 시작!!

마침 같은 문제를 질문한 친구가 stackoverflow에 계셨기 때문에 따라해보았다.
https://stackoverflow.com/questions/23749103/cs50-library-wont-link-to-file-in-cs50-appliance

요약: Makefile 이라는 no 확장자 파일을 만들고, 거기에 LDLIBS += -lcs50를 입력해보아라

그대로 실행해봤다. 어느 위치에 만들어야 하는지 모르겠어서 일단 작업 디렉토리 내에 만듦.


띠용? 정말 된다.
어떤 원리로 이루어지는지는 차차 알아가야할듯하고, 매번 작업 디렉토리에 Makefile을 만들어주어야 하는것인지도 알아봐야겠지만 우선은 원하는 대로 돌아가니 해결완료!!

profile
개발자 헤이린

2개의 댓글

comment-user-thumbnail
2023년 11월 16일

감사합니다 ㅎㅎ

답글 달기
comment-user-thumbnail
2024년 2월 18일

좋은 정보를 공유해주셔서 감사합니다.

글에서 살짝 오류가 있어서 말씀드립니다.
"요약: Makefile 이라는 no 확장자 파일을 만들고, 거기에 LDLIBS += -lcs50를 입력해보아라"
이 부분에서 "no 확장자 파일을 만들고" 대신에 "확장자를 정의하지 않고" 로 수정하는 제 의미론상 더 맞을 것 같습니다.

CS50을 들을 때 VS code 설정이 까다로웠는데 이번 글의 도움을 많이 받았습니다.
감사합니다.

답글 달기