내 정적 C++ 라이브러리에는 생성자가있는 전역 객체가 포함되어 있습니다. 테스트 프로그램은 Apple의 gcc 4.2.1을 기반으로 작성되었으며 실행시 객체가 0으로 초기화되었음을 알 수 있지만 생성자는 호출되지 않습니다. 정적 클래스 멤버 변수에 대해서도 마찬가지입니다.Mac OS X의 정적 C++ 라이브러리에 연결 : 라이브러리의 전역 객체 생성자가 호출되지 않습니다.
-force_load
옵션을 ld
에 제공하면이 문제를 해결할 수 있지만 큰 실행 파일 크기로 인해이 방법이 적합하지 않습니다. 전역 개체가 정의 된 파일에서 함수를 참조하려고했지만 아무 효과가 없습니다.
Linux (gcc 4.5.1)에서 동일한 코드를 작성할 때 그러한 문제는 없습니다.
마지막 링크는 어떻게하고 있습니까? 예 : 'gcc','g ++','ld'? –
'g ++'을 사용합니다 (결과적으로'ld'가 사용됩니다) – stkuzma