c++ - Static object lifetime in a shared library with a destructor method -
i have cross-platform dynamic library uses internal static logger object. want able log loading/unloading of library - in windows works quite nice since i'm able log both events when dll_process_attach , dll_process_dettach invocations of dllmain happen. on linux, approach have __attribute__((constructor)) , __attribute__((destructor)) methods same, along these lines:
clog log; static void __attribute__((constructor)) virtualboxcapturesourceloaded(void) { log.initialize("/var/log/my-test-log.log"); log("=== start ==="); } static void __attribute__((destructor)) virtualboxcapturesourceunloaded(void) { log("=== stop ==="); } however, failed since log object destroyed when destructor invoked? question - can control anyhow (compiler flags, attributes destructor, ...) or option use pointer instead of object , destroy manually in destructor?
Comments
Post a Comment