BOOST_LOG_DYN_LINK
Açıklaması şöyle. Windows'ta bu macro'yu tanımlamak gereksiz. Gcc'de .so ile linklemek istiyorsak tanımlamak gerekir.
Derlerken şöyle yaparız.
Şöyle yaparız.
Açıklaması şöyle. Windows'ta bu macro'yu tanımlamak gereksiz. Gcc'de .so ile linklemek istiyorsak tanımlamak gerekir.
GccIf defined in user code, the library will assume the binary is built as a dynamically loaded library ("dll" or "so"). Otherwise it is assumed that the library is built in static mode. This macro must be either defined or not defined for all translation units of user application that uses logging. This macro can help with auto-linking on platforms that support it.
Derlerken şöyle yaparız.
g++ ... -DBOOST_LOG_DYN_LINK ...
-lpthread -lboost_filesystem -lboost_log_setup -lboost_log
Eğer derlerken değil de linklerken yapmaya kalkarsak doğal olarak hata alırız. Yani şu adım yanlış.g++ -DBOOST_LOG_DYN_LINK boosttest.o -o boosttest -lboost_log -lpthread
Bir diğer seçenek ise kodda bu macroyu tanımlamak şöyle yaparız.#define BOOST_LOG_DYN_LINK 1
CMakeŞöyle yaparız.
...
add_definitions( -DBOOST_LOG_DYN_LINK )
target_link_libraries(testapp
...
pthread
boost_system
boost_log
)
Hiç yorum yok:
Yorum Gönder