컴파일 된 .o 파일을 받았지만 원본 .cc 파일이없고 프로그램의 헤더 파일이 절반 밖에되지 않았습니다. . 헤더 파일에는 모든 메소드 서명이 있지만 개인 변수 선언이 없습니다. 이 .o 파일을 프로젝트에서 사용할 수있게하려고하는데 .o 파일에 정의 된 클래스의 생성자에서 세그먼트 화 오류가 발생합니다. 프로그램이 컴파일됩니다. 어떻게 작동 시키나요? 이 프로그램은 숙제이며 교사는 .cc 파일을 보지 않기를 원합니다. 또한 선생님은이 문제에 대해 알고 있습니다. 나는 단지 그것을 스스로 알아 내려고 노력하고있다. (그리고 너희들의 도움으로).). 나는 전에 다른 선생님과 함께이 일을했다고 생각했지만 아무런 문제가 없었습니다. 프로그램을 컴파일하는 데 사용되는 makefile이 있습니다..cc 파일없이 .o 파일을 컴파일하는 C++
4
A
답변
4
C++ 프로그램을 사용하고 있고 헤더 파일에 클래스 정의가 포함되어있는 경우 클래스 정의는 원래 파일을 빌드하는 데 사용 된 클래스 정의와 정확히 일치해야합니다 (). 이것은 One Definition Rule입니다. 교수가 클래스 정의에서 private 변수 선언을 제거하면 충돌이 발생할 가능성이 높습니다. 이는 서로 다른 .o 파일이 해당 클래스에서 정의한 객체의 크기에 대해 일치하지 않기 때문입니다.
교수님이 수업의 구현을 숨기려면 p/impl pattern을 사용해야합니다. 헤더 파일을 사용하려면 맹 글링 된 클래스 정의를 완전히 제거하고이를 사용하려고 시도하지 않아야합니다 (그러나 포인터 매개 변수로 클래스를 가져 오거나 리턴하는 모든 함수를 충족 시키려면 class Foo;
에서와 같은 순방향 정의를 사용할 수 있습니다) .
관련 문제
- 1. c 파일없이 헤더 파일 링크하기
- 2. 파일을 컴파일하는 C++
- 3. Makefile을 사용하여 다른 CFLAGS로 다른 C 파일을 컴파일하는 방법은 무엇입니까?
- 4. .a 파일을 사용하여 c 파일을 컴파일하는 명령
- 5. .o 파일을 Linux 커널 모듈 (.ko) 파일로 컴파일하는 방법은 무엇입니까?
- 6. make에서 여러 파일을 컴파일하는 방법
- 7. 모든 .o 파일을 라이브러리에 저장해야합니까?
- 8. 리눅스에서 교차 컴파일하는 방법
- 9. QtCreator에서 C 파일을 컴파일하는 중 문제가 발생했습니다.
- 10. C++을 사용하여 .java 파일을 컴파일하는 방법
- 11. Windows 7에서 cygwin으로 C++ 파일을 컴파일하는 방법
- 12. howto는 리눅스에서 C++ .o 파일을 검사합니까?
- 13. cc를 사용하여 Solaris에서 C++을 컴파일하는 방법?
- 14. cpp 파일없이 헤더 파일을 사용하는 방법
- 15. .nib 파일을 컴파일하는 방법
- 16. gcc로 .c, .h 및 .so 파일을 컴파일하는 방법?
- 17. Windows에서 * .o 파일을 연결하십시오.
- 18. Eclipse에서 포함 파일을 다시 컴파일하는 방법
- 19. pngwriter로 C++ 프로그램을 컴파일하는 방법
- 20. 대용량 C++ 프로젝트에 대해 여러 C++ 파일을 함께 컴파일하는 경우
- 21. 사용법 : cc [options] 파일. 자세한 내용은 'cc -flags'를 사용하십시오.
- 22. as3proj 파일없이 플래시 프로젝트의 SWF 파일을 다시 작성하십시오.
- 23. Linux에서 Makefile을 사용하여 한 번에 여러 개의 테스트 C++ 파일을 컴파일하는 방법
- 24. .hh에서 .cc 파일로의 C++ 메소드 선언 이동
- 25. iPhone app과 함께 추가 된 Object (*. o) 파일을 컴파일하는 방법은 무엇입니까?
- 26. 정적 연결을 위해 .o 파일을 .o 파일로 만드는 이유는 무엇입니까?
- 27. cc 4.4.1에서 -MG 플래그를 사용하는 방법은 무엇입니까?
- 28. .c 파일을 다른 .c 파일에 포함합니다.
- 29. C++ 파일 I/O 문제
- 30. clang을 사용하여 C++ 파일을 컴파일하는 중 오류가 발생했습니다.
프로젝트를 컴파일하는 방법과 오류는 무엇입니까? – ObscureRobot
헤더에 비공개 클래스 멤버가 없거나 다른 것들만 있습니까? – Dani
클래스에 정적 메서드가 있습니까? 헤더를 게시 할 수 있습니까? 나는 이것이 풀릴 수 있다고 생각한다. – Beta