Hi,
when I compile my library in debug mode I use the macro "-D DEBUG" to activate some feature.
When I link my program to bitpit, I have a conflict.
Compiling (g++ -std=c++17 -pthread -g2 -O0 **-D DEBUG** -D MKLENABLED ) Octree_generator.cpp <command-line>:0:7: error: expected identifier before numeric constant /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:55:9: note: in expansion of macro ‘DEBUG’ DEBUG ^~~~~ <command-line>:0:7: error: expected ‘}’ before numeric constant /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:55:9: note: in expansion of macro ‘DEBUG’ DEBUG ^~~~~ <command-line>:0:7: error: expected unqualified-id before numeric constant /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:55:9: note: in expansion of macro ‘DEBUG’ DEBUG ^~~~~ In file included from /home/lverzeroli01/src/bitpit/include/bitpit/bitpit_IO.hpp:48:0, from /home/lverzeroli01/src/bitpit/include/bitpit/surfunstructured.hpp:31, from /home/lverzeroli01/src/bitpit/include/bitpit/bitpit_surfunstructured.hpp:30, from GenerateSimpleShapes.hpp:4, from Octree_generator.cpp:23: /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:63:13: error: ‘Verbosity’ does not name a type; did you mean ‘Visibility’? typedef Verbosity Priority; ^~~~~~~~~ Visibility /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:136:22: error: ‘log’ is not a class, namespace, or enumeration void setPriority(log::Priority priority); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:137:5: error: ‘log’ does not name a type log::Priority getPriority(); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:139:24: error: ‘log’ is not a class, namespace, or enumeration void setVisibility(log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:140:5: error: ‘log’ does not name a type log::Visibility getVisibility(); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:142:25: error: ‘log’ is not a class, namespace, or enumeration void setVerbosities(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:150:30: error: ‘log’ is not a class, namespace, or enumeration void setConsoleVerbosity(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:151:5: error: ‘log’ does not name a type log::Verbosity getConsoleVerbosity(); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:158:27: error: ‘log’ is not a class, namespace, or enumeration void setFileVerbosity(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:159:5: error: ‘log’ does not name a type log::Verbosity getFileVerbosity(); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:164:43: error: ‘log’ is not a class, namespace, or enumeration void println(const std::string &line, log::Priority priority); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:165:43: error: ‘log’ is not a class, namespace, or enumeration void println(const std::string &line, log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:165:10: error: ‘void Logger::println(const string&, int)’ cannot be overloaded void println(const std::string &line, log::Visibility visibility); ^~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:164:10: error: with ‘void Logger::println(const string&, int)’ void println(const std::string &line, log::Priority priority); ^~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:166:49: error: ‘log’ does not name a type void println(const std::string &line, const log::Priority priority, log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:166:63: error: expected unqualified-id before ‘priority’ void println(const std::string &line, const log::Priority priority, log::Visibility visibility); ^~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:166:63: error: expected ‘)’ before ‘priority’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:166:54: error: expected ‘;’ at end of member declaration void println(const std::string &line, const log::Priority priority, log::Visibility visibility); ^~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:166:63: error: ‘priority’ does not name a type; did you mean ‘error_t’? void println(const std::string &line, const log::Priority priority, log::Visibility visibility); ^~~~~~~~ error_t /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:169:41: error: ‘log’ is not a class, namespace, or enumeration void print(const std::string &line, log::Priority priority); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:170:41: error: ‘log’ is not a class, namespace, or enumeration void print(const std::string &line, log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:170:10: error: ‘void Logger::print(const string&, int)’ cannot be overloaded void print(const std::string &line, log::Visibility visibility); ^~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:169:10: error: with ‘void Logger::print(const string&, int)’ void print(const std::string &line, log::Priority priority); ^~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:171:41: error: ‘log’ is not a class, namespace, or enumeration void print(const std::string &line, log::Priority priority, log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:171:65: error: ‘log’ is not a class, namespace, or enumeration void print(const std::string &line, log::Priority priority, log::Visibility visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:181:5: error: ‘log’ does not name a type log::Priority m_priority; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:182:5: error: ‘log’ does not name a type log::Visibility m_visibility; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:184:5: error: ‘log’ does not name a type log::Verbosity m_consoleVerbosity; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:185:5: error: ‘log’ does not name a type log::Verbosity m_fileVerbosity; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:207:21: error: ‘log’ is not a class, namespace, or enumeration void initialize(log::Mode mode, bool reset, ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:210:21: error: ‘log’ is not a class, namespace, or enumeration void initialize(log::Mode mode, bool reset = false, ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:214:21: error: ‘log’ is not a class, namespace, or enumeration void initialize(log::Mode mode, const std::string &name, ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:230:18: error: ‘log’ is not a class, namespace, or enumeration bool setMode(log::Mode mode); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:231:5: error: ‘log’ does not name a type log::Mode getMode() const; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:233:25: error: ‘log’ is not a class, namespace, or enumeration void setVerbosities(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:234:30: error: ‘log’ is not a class, namespace, or enumeration void setConsoleVerbosity(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:235:27: error: ‘log’ is not a class, namespace, or enumeration void setFileVerbosity(log::Verbosity verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:245:5: error: ‘log’ does not name a type log::Mode m_mode; ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:268:11: error: ‘namespace log { }’ redeclared as different kind of symbol namespace log { ^~~ In file included from /usr/include/features.h:424:0, from /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:533, from /usr/include/c++/7/iostream:38, from Octree_generator.cpp:18: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:104:1: note: previous declaration ‘double log(double)’ __MATHCALL_VEC (log,, (_Mdouble_ __x)); ^ In file included from /home/lverzeroli01/src/bitpit/include/bitpit/bitpit_IO.hpp:48:0, from /home/lverzeroli01/src/bitpit/include/bitpit/surfunstructured.hpp:31, from /home/lverzeroli01/src/bitpit/include/bitpit/bitpit_surfunstructured.hpp:30, from GenerateSimpleShapes.hpp:4, from Octree_generator.cpp:23: /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:306:47: error: ‘log’ does not name a type Logger& setPriority(Logger& logger, const log::Priority &priority); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:306:61: error: expected unqualified-id before ‘&’ token Logger& setPriority(Logger& logger, const log::Priority &priority); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:306:61: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:306:62: error: expected initializer before ‘priority’ Logger& setPriority(Logger& logger, const log::Priority &priority); ^~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:36: error: type/value mismatch at argument 1 in template parameter list for ‘template<class T> struct LoggerManipulator’ LoggerManipulator<log::Priority> priority(const log::Priority &priority); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:36: note: expected a type, got ‘log’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:53: error: ‘log’ does not name a type LoggerManipulator<log::Priority> priority(const log::Priority &priority); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:67: error: expected unqualified-id before ‘&’ token LoggerManipulator<log::Priority> priority(const log::Priority &priority); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:67: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:307:68: error: expected initializer before ‘priority’ LoggerManipulator<log::Priority> priority(const log::Priority &priority); ^~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:309:49: error: ‘log’ does not name a type Logger& setVisibility(Logger& logger, const log::Visibility &visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:309:65: error: expected unqualified-id before ‘&’ token Logger& setVisibility(Logger& logger, const log::Visibility &visibility); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:309:65: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:309:66: error: expected initializer before ‘visibility’ Logger& setVisibility(Logger& logger, const log::Visibility &visibility); ^~~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:38: error: type/value mismatch at argument 1 in template parameter list for ‘template<class T> struct LoggerManipulator’ LoggerManipulator<log::Visibility> visibility(const log::Visibility &visibility); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:38: note: expected a type, got ‘log’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:57: error: ‘log’ does not name a type LoggerManipulator<log::Visibility> visibility(const log::Visibility &visibility); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:73: error: expected unqualified-id before ‘&’ token LoggerManipulator<log::Visibility> visibility(const log::Visibility &visibility); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:73: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:310:74: error: expected initializer before ‘visibility’ LoggerManipulator<log::Visibility> visibility(const log::Visibility &visibility); ^~~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:312:50: error: ‘log’ does not name a type Logger& setVerbosities(Logger& logger, const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:312:65: error: expected unqualified-id before ‘&’ token Logger& setVerbosities(Logger& logger, const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:312:65: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:312:66: error: expected initializer before ‘verbosity’ Logger& setVerbosities(Logger& logger, const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:36: error: type/value mismatch at argument 1 in template parameter list for ‘template<class T> struct LoggerManipulator’ LoggerManipulator<log::Priority> verbosities(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:36: note: expected a type, got ‘log’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:56: error: ‘log’ does not name a type LoggerManipulator<log::Priority> verbosities(const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:71: error: expected unqualified-id before ‘&’ token LoggerManipulator<log::Priority> verbosities(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:71: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:313:72: error: expected initializer before ‘verbosity’ LoggerManipulator<log::Priority> verbosities(const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:315:55: error: ‘log’ does not name a type Logger& setConsoleVerbosity(Logger& logger, const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:315:70: error: expected unqualified-id before ‘&’ token Logger& setConsoleVerbosity(Logger& logger, const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:315:70: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:315:71: error: expected initializer before ‘verbosity’ Logger& setConsoleVerbosity(Logger& logger, const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:36: error: type/value mismatch at argument 1 in template parameter list for ‘template<class T> struct LoggerManipulator’ LoggerManipulator<log::Priority> consoleVerbosity(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:36: note: expected a type, got ‘log’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:61: error: ‘log’ does not name a type LoggerManipulator<log::Priority> consoleVerbosity(const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:76: error: expected unqualified-id before ‘&’ token LoggerManipulator<log::Priority> consoleVerbosity(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:76: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:316:77: error: expected initializer before ‘verbosity’ LoggerManipulator<log::Priority> consoleVerbosity(const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:318:52: error: ‘log’ does not name a type Logger& setFileVerbosity(Logger& logger, const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:318:67: error: expected unqualified-id before ‘&’ token Logger& setFileVerbosity(Logger& logger, const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:318:67: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:318:68: error: expected initializer before ‘verbosity’ Logger& setFileVerbosity(Logger& logger, const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:36: error: type/value mismatch at argument 1 in template parameter list for ‘template<class T> struct LoggerManipulator’ LoggerManipulator<log::Priority> fileVerbosity(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:36: note: expected a type, got ‘log’ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:58: error: ‘log’ does not name a type LoggerManipulator<log::Priority> fileVerbosity(const log::Verbosity &verbosity); ^~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:73: error: expected unqualified-id before ‘&’ token LoggerManipulator<log::Priority> fileVerbosity(const log::Verbosity &verbosity); ^ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:73: error: expected ‘)’ before ‘&’ token /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:319:74: error: expected initializer before ‘verbosity’ LoggerManipulator<log::Priority> fileVerbosity(const log::Verbosity &verbosity); ^~~~~~~~~ /home/lverzeroli01/src/bitpit/include/bitpit/logger.hpp:326:1: error: expected declaration before ‘}’ token } ^ ../../Make.common:59: recipe for target 'Octree_generator.o' failed make: *** [Octree_generator.o] Error 1
If I change the macro -D DEBUG with something else (i.e. debug), it works.
Can you suggest me something to keep on using -D DEBUG?