상대경로를 못읽는 xcode : segmenation fault 오류

SeonDal·2021년 8월 23일
0

🚑 에러치유소

목록 보기
8/12

평화롭지 못한 모각코 아이두C...

zsh: segmentation fault  
                                                        Saving session...
                                                                         ...copying shared history...
                     ...saving history...truncating history files...
                                                                    ...completed.

[프로세스 완료됨]

대체 이건 무슨 오류인가 봤더니

segetation fault

: 잘못된 메모리 참조 때문에 발생하는 오류

  1. 잘못된 메모리 영역에 접근했을 때
    (배열의 인덱스가 음수 혹은 선언한 크기를 초과..등)
  2. 읽기 전용 파일에 쓰려고 할 때
  3. 파일을 불러와야하는데 지정된 경로에 해당하는 파일이 없을때

이번에 생긴 문제는 3번 때문이였다.

FILE* f = fopen();

에서 지정된 경로가 옳지 않아서 생긴것

나만 그런건가 했는데 맥으로 xcode 사용하시는 분도 같은 오류가 난걸 보니... 이유는 모르겠지만 xcode가 상대경로를 읽지 못한다..

상대경로에 대한 포스팅

결국 정말 모두가 권장하지 않는 절대경로로 바꿔서 해결 (아래의 1번방법)

그리고 상대경로에 대한 미련이 남아서 여러가지를 더 시도했다..(2번 이후..)



1. 절대경로로 파일 불러오기

불러올 파일을 Finder 에서 찾고 우클릭 - 정보 가져오기

여기서 나온 위치에 해당하는 부분을 드래그해서 복사하면 이 파일이 있는 위치의 절대경로가 복사된다

이렇게!



2. Edit Scheme

찾아보니 폴더 내 파일을 자동으로 처리해주는 Visual Studio 와는 다르게 xcode는 파일을 못찾는다고 한다. 출처

그래서 설정을 해줬다

상단의 Project - Scheme - Edit Scheme 클릭

좌측 Run - 상단 Options 클릭 후
Working Directory 에 Use custom working directory 를 체크하고
내가 읽고쓸 파일이 있는 폴더의 경로를 설정해준다



3. 읽고 쓸 파일이 그 경로에 있는지 확인하기

고군분투하던중.. 이상한점을 발견했다.

분명 왼쪽에는 폴더에 읽을 파일들(Maze.txt)이 잘 들어가 있는데 Finder로 이 프로젝트 폴더에 가보면 파일들이 없음 ㅋㅋㅋㅋ (황당)

알고보니 내가 파일들을 다운로드해서 바로 xcode 네비게이터로 위로 옮겨서 붙여넣고 Create groups 옵션으로 해서 이렇게 된것...같다.. (근데 대체 왜 이렇게 하면 안되는건지는 모르겠다..)

입출력 파일을 진짜 폴더에 잘 들어가게 잘 옮기자


아 그리고 파일을 옮길때마다 나오는 이 옵션창의
Create groups 와 Create folder references 의 차이를 몰라서.. 찾아봤다

Create groups vs Create folder references

  • Create groups
    : 파일을 삭제해도 프로젝트에는 가상으로 남음. 즉 폴더 != 실제 파일

  • Create folder references
    : 파일을 변경하면 프로젝트 네비게이터에도 반영됨

출처 : https://thomashanning.com/xcode-groups-folder-references/

profile
김선달 개발블로그

0개의 댓글