그래서 정적 라이브러리 (MacOS, .a 라이브러리)가 있습니다. 그것은 C++로 작성과 같은 그것의 코드에서 정적 초기화를 가지고 있어요 :이 운영자와 lib 디렉토리에 내 .dylib 라이브러리를 연결하고있어동적 라이브러리 내의 공유 라이브러리 정적 초기화 자
//myclass.hpp
class MyClass {
...
static MyClass *defaultValue_;
static MyClass *newInitialDefaultValue();
...
}
...
//myclass.cpp
MyClass *MyClass::defaultValue_ = newInitialDefaultValue();
...
. 불행히도, .dylib 파일이로드 될 때 MyClass::newInitialDefaultValue()
이 호출되지 않습니다. 이유는 무엇이며 어떻게 처리 할 수 있습니까?
나는 행운이없는 -all_load
과 -force_load
링커 플래그를 사용해 보았습니다.
통찰력을 주셔서 감사합니다. 불행히도, 오류는 새로운 버전의 라이브러리 바이너리를 다른 위치에 배치 한 라이브러리 빌드 시스템에 있었고, 나는 여전히 이전의 lib 바이너리를 사용하고있었습니다. 그것은 일어난다. .. – peetonn