Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef __IL_NOTIFY_H__
- #define __IL_NOTIFY_H__
- #include <string>
- #include "Poco/Logger.h"
- #include "Poco/LogStream.h"
- using Poco::Logger;
- using Poco::LogStream;
- namespace mynamespace
- {
- // Get logger. Inherits root channel
- LogStream lstr(Logger::get("MyLogger"));
- // From any other class, call logger this way:
- //lstr << "This is a test" << std::endl;
- }
- #endif
- #include "IL_Class1.h"
- #include "IL_Notify.h"
- namespace mynamespace {
- void IL_Class1::foo()
- {
- // Stuff...
- lstr << "This is a test msg from IL_Class1::foo" << std::endl;
- }
- }
- #include "IL_Class2.h"
- #include "IL_Notify.h"
- namespace mynamespace {
- void IL_Class2::bar()
- {
- // Stuff...
- lstr << "This is a test msg from IL_Class2::bar" << std::endl;
- }
- }
- # Set search path to find PocoConfig.cmake
- set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_SOURCE_DIR}/cmake/Modules/)
- # Look for needed packages
- find_package(Poco REQUIRED)
- # Now, we can use poco
- include_directories(
- ${Poco_INCLUDE_DIRS}
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- # Libraries which we are linking against
- link_directories(
- ${Poco_LIBRARY_DIRS}
- )
- # Get all the cpp files to build my library
- file(GLOB_RECURSE all_sources
- ${CMAKE_CURRENT_SOURCE_DIR}/src/IL_Class1.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/src/IL_Class2.cpp
- )
- # Library creation
- add_library(mylib SHARED ${all_sources})
- CMakeFiles/mylib.dir/src/IL_Class2.cpp.o:(.bss+0x0): multiple definition of `mynamespace::lstr'
- CMakeFiles/mylib.dir/src/IL_Class1.cpp.o:(.bss+0x0): first defined here
- collect2: error: ld returned 1 exit status
- make[2]: *** [libmylib.so] Error 1
- make[1]: *** [CMakeFiles/mylib.dir/all] Error 2
- make: *** [all] Error 2
- #ifndef __IL_NOTIFY_H__
- #define __IL_NOTIFY_H__
- #include <string>
- #include "Poco/Logger.h"
- #include "Poco/LogStream.h"
- using Poco::Logger;
- using Poco::LogStream;
- namespace openil
- {
- // Get logger. Inherits root channel
- extern LogStream lstr;
- }
- #endif
- #include "IL_Notify.h"
- namespace openil
- {
- // TODO: More flexibility here: more channels, different formatting...
- // Maybe a IL_Utils function should do that
- // Get logger. Inherits root channel
- LogStream lstr(Logger::get("OpenILLogger"));
- // From any other class, call logger this way:
- //lstr << "This is a test" << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement