헥스 편집기에서 정적 라이브러리 (VC++로 컴파일 됨)를 열었으며 모든 코드 파일과 헤더의 경로를 볼 수 있습니다. 나는 그들이 거기에서 봉사하는 목적을 이해하지 못한다.
이 아닌 방법이 있습니까 바이너리에 포함되어 있습니까? 나는 모든 옵션을 겪어 왔지만 아무것도 찾을 수 없었다.정적 라이브러리에서 코드 파일 및 헤더 경로가 하드 코딩 되었습니까?
답변
예, 컴파일러는 많은 문맥 정보를 정적 라이브러리에 포함합니다. 정적 lib는 매우 약한 코드 추상화이며, .obj 파일의 모음 일뿐입니다. 비열한 압축 비율의 .zip 파일로 생각하십시오.
해당 정보는 매우 까다로운 요구 사항이며 나머지 도구 체인은 종속되어 있습니다. 라이브러리 관리자와 마찬가지로 프로그램 데이터베이스를 병합해야합니다. 그리고 링커는 프로파일 기반 최적화 데이터로 바이너리를 재 빌드하기 위해 컴파일러의 백엔드를 다시 시작할 수 있어야합니다.
어느 것이 보입니까? /GL 컴파일 옵션은 컴파일러에서 사용한 명령 줄을 포함합니다. 따라서 PGO는 정확하게 동일한 컴파일 옵션을 사용하여 올바르게 수행 될 수 있습니다. 또한 클라이언트 프로그래머에게 편리한 매우이기 때문에 주목할만한 점은 라이브러리를 올바르게 링크 할 수 있도록 컴파일 옵션을 리버스 엔지니어링 할 수 있다는 것입니다. 모든 사람이 문서화하는 것을 잊어 버린 매우 중요한 세부 사항 :
이 정보를 합리적으로 제거 할 수 없으므로 PGO가 중요합니다. 이런 종류의 정보 공개가 마음에 들지 않는다면, 빌드 서버를 사용하거나 라이브러리 대신 바이너리를 제공하십시오. DLL.
해명 해줘서 고마워, 한스. 이제 알겠다. 매우 감사 :) – Garp
- 1. 왜 execuatble에서 공유 라이브러리 경로가 하드 코드 되었습니까?
- 2. 속성의 하드 코딩 피하기 파일 경로 지정
- 3. 정적 라이브러리에서 프로젝트 파일 사용
- 4. 하드 코딩 변수없이 vbs를 사용하여 파일 삭제
- 5. C++로 하드 코딩
- 6. 문자열 하드 코딩 방지 방법
- 7. 하드 코딩 된 TextView 및 필요한 문자열?
- 8. 사전 : 하드 코딩 된 대 외부 파일
- 9. 하드 코딩 된 문자열 대 리소스 파일
- 10. 정적 파일 위치 및 캐시 제어 헤더
- 11. 정적 HTML 테이블 헤더 코드
- 12. 경로가 하드 코딩되지
- 13. 하드 코딩 된 URL의
- 14. DotNET의 하드 코딩 글꼴
- 15. 하드 코딩 드롭 다운
- 16. 하드 코딩 OCaml
- 17. 두 하드 코딩 배열은
- 18. 하드 코딩 경로
- 19. VBA SaveA 경로 하드 코딩?
- 20. secureSocial 라이브러리에서 securesocial.core.Identity가 누락 되었습니까?
- 21. BAT 파일 암호 하드 코드
- 22. 정적 라이브러리에서 문자열 지역화
- 23. KCFinder와 CKeditor를 통합하십시오 - 파일 경로가 잘못 되었습니까?
- 24. FourSquare 하드 코딩 된 마이크로 컨트롤러의 인증
- 25. 정적/하드 코딩 된 데이터에 대한 ManytoManyField의 대안은 무엇입니까?
- 26. 면도기에 하드 코딩 된 URL
- 27. 정적 라이브러리에서 MFC 사용
- 28. 하드 코딩 된 바로 가기
- 29. 임의의 데이터에 대한 프롤로그 코드 (하드 코딩 할 필요가 없도록)
- 30. 함수 이름을 정적 라이브러리에서 추출
디버그 정보입니다. 이 정보없이 (릴리스) 빌드를 수행 할 수 있습니다. –
http://msdn.microsoft.com/en-us/library/958x11bc.aspx – NPE
말하기 요청 : 출시 빌드입니다. – Garp