Open wjshim2003 opened 5 months ago
opt.cpp 등의 코드는 C++17로 컴파일하게 변경 시 std::expected
등 C++23의 기능을 못 써 컴파일이 불가능한 경우가 생길 수 있습니다.
최적화 패스의 헤더에 AliasAnalysis.h
가 포함되지 않는다면 opt.cpp
를 컴파일하는 과정에서는 해당 문제가 발생하지 않을 것으로 예상되는데, 혹시 해당 방향으로 변경이 가능하신가요?
최적화 헤더에 AliasAnalysis.h
가 직접 포함되지 않아도 AliasAnalysis.h
가 헤더로 포함된 파일을 참조하는 과정에서 문제가 발생하는 것 같습니다.
컴파일 단계와 링킹 단계 중 어디서 문제가 발생하나요? 에러 메시지가 ld.lld 등으로 시작하면 링커 문제, 헤더 파일 이름 등이 많이 들어 있으면 컴파일 문제입니다.
컴파일 단계 문제입니다.
최적화 헤더에
AliasAnalysis.h
가 직접 포함되지 않아도AliasAnalysis.h
가 헤더로 포함된 파일을 참조하는 과정에서 문제가 발생하는 것 같습니다.
헤더로 포함된 파일을 참조한다는 것은 .cpp 파일을 말씀하시는 걸까요? .cpp 파일이 C++17 환경에서 오브젝트나 라이브러리 파일로 컴파일이 된다면, 그 뒤에 다른 파일에서 해당 라이브러리를 참조하는 것으로는 현재 발생하는 문제가 생기지 않습니다.
해당 문제가 발생하는 것은 AliasAnalysis.h
가 어떤 식으로든 헤더에 포함된 경우로 보입니다.
해당 파일을 헤더에 포함하지 않고 코드를 작성하기는 어려운 상황인가요?
opt.cpp의 다른 헤더에서 AnalysisAnalysis.h
를 참조했던 것 같습니다. 해결되었습니다. 감사합니다.
#129에서 언급된 것처럼
AliasAnalysis.h
를 사용하는 경우 빌드에 실패하는 문제가 발생했습니다. #129에 명시된 것처럼 c++17로 컴파일하게 하면pass.cpp
는 컴파일에 성공하는데,opt.cpp
를 빌드하는 과정에서 같은 문제가 발생합니다. 프로젝트 전체의 컴파일 옵션을 바꾸어야 하나요?