drogon icon indicating copy to clipboard operation
drogon copied to clipboard

compile issue

Open syedahaseeb28 opened this issue 2 years ago • 1 comments

I have used the following commands to install drogon, followed the tutorial from (https://drogon.docsforge.com/master/installation/#drogon-installation)

cd $WORK_PATH git clone https://github.com/an-tao/drogon cd drogon git submodule update --init mkdir build cd build cmake .. make && sudo make install

at my cmake i include drogon in target_link_libraries, but my project did not compile and link error occurring.

CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrClassMap::demangle(char const*)': /usr/local/include/drogon/DrClassMap.h:120: undefined reference to trantor::Logger::Logger(trantor::Logger::SourceFile, int, trantor::Logger::LogLevel)' /usr/local/include/drogon/DrClassMap.h:120: undefined reference to trantor::Logger::stream()' /usr/local/include/drogon/DrClassMap.h:120: undefined reference to trantor::Logger::~Logger()' /usr/local/include/drogon/DrClassMap.h:120: undefined reference to trantor::Logger::~Logger()' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::IntranetIpFilter::IntranetIpFilter()': /usr/local/include/drogon/IntranetIpFilter.h:29: undefined reference to VTT for drogon::IntranetIpFilter' /usr/local/include/drogon/IntranetIpFilter.h:29: undefined reference to vtable for drogon::IntranetIpFilter' /usr/local/include/drogon/IntranetIpFilter.h:29: undefined reference to vtable for drogon::IntranetIpFilter' /usr/local/include/drogon/IntranetIpFilter.h:29: undefined reference to vtable for drogon::IntranetIpFilter' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::LocalHostFilter::LocalHostFilter()': /usr/local/include/drogon/LocalHostFilter.h:29: undefined reference to VTT for drogon::LocalHostFilter' /usr/local/include/drogon/LocalHostFilter.h:29: undefined reference to vtable for drogon::LocalHostFilter' /usr/local/include/drogon/LocalHostFilter.h:29: undefined reference to vtable for drogon::LocalHostFilter' /usr/local/include/drogon/LocalHostFilter.h:29: undefined reference to vtable for drogon::LocalHostFilter' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::NotFound::NotFound()': /usr/local/include/drogon/NotFound.h:30: undefined reference to VTT for drogon::NotFound' /usr/local/include/drogon/NotFound.h:30: undefined reference to vtable for drogon::NotFound' /usr/local/include/drogon/NotFound.h:30: undefined reference to vtable for drogon::NotFound' /usr/local/include/drogon/NotFound.h:30: undefined reference to vtable for drogon::NotFound' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::PluginBase::~PluginBase()': /usr/local/include/drogon/plugins/Plugin.h:74: undefined reference to Json::Value::~Value()' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::PluginBase::PluginBase()': /usr/local/include/drogon/plugins/Plugin.h:79: undefined reference to Json::Value::Value(Json::ValueType)' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::plugin::SecureSSLRedirector::SecureSSLRedirector()': /usr/local/include/drogon/plugins/SecureSSLRedirector.h:49: undefined reference to VTT for drogon::plugin::SecureSSLRedirector' /usr/local/include/drogon/plugins/SecureSSLRedirector.h:49: undefined reference to vtable for drogon::plugin::SecureSSLRedirector' /usr/local/include/drogon/plugins/SecureSSLRedirector.h:49: undefined reference to vtable for drogon::plugin::SecureSSLRedirector' /usr/local/include/drogon/plugins/SecureSSLRedirector.h:49: undefined reference to vtable for drogon::plugin::SecureSSLRedirector' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::plugin::AccessLogger::AccessLogger()': /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to VTT for drogon::plugin::AccessLogger' /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to vtable for drogon::plugin::AccessLogger' /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to vtable for drogon::plugin::AccessLogger' /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to vtable for drogon::plugin::AccessLogger' /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to trantor::AsyncFileLogger::AsyncFileLogger()' /usr/local/include/drogon/plugins/AccessLogger.h:96: undefined reference to VTT for drogon::plugin::AccessLogger' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrObject<drogon::plugin::AccessLogger>::DrAllocator::className() const': /usr/local/include/drogon/DrObject.h:96: undefined reference to typeinfo for drogon::plugin::AccessLogger' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrObject<drogon::plugin::SecureSSLRedirector>::DrAllocator::className() const': /usr/local/include/drogon/DrObject.h:96: undefined reference to typeinfo for drogon::plugin::SecureSSLRedirector' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrObject<drogon::NotFound>::DrAllocator::className() const': /usr/local/include/drogon/DrObject.h:96: undefined reference to typeinfo for drogon::NotFound' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrObject<drogon::LocalHostFilter>::DrAllocator::className() const': /usr/local/include/drogon/DrObject.h:96: undefined reference to typeinfo for drogon::LocalHostFilter' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function drogon::DrObject<drogon::IntranetIpFilter>::DrAllocator::className() const': /usr/local/include/drogon/DrObject.h:96: undefined reference to typeinfo for drogon::IntranetIpFilter' CMakeFiles/aicore_attribute_management_svc_test.dir/genesys_switch_tests.cpp.o: In function std::enable_if<std::is_default_constructible<drogon::plugin::AccessLogger>::value, void>::type drogon::DrObject<drogon::plugin::AccessLogger>::DrAllocator::registerClass<drogon::plugin::AccessLogger>()': /usr/local/include/drogon/DrObject.h:105: undefined reference to drogon::DrClassMap::registerClass(std::string const&, std::function<drogon::DrObjectBase* ()> const&)' .... .... ...

Can you please guide where i am doing wrong?

syedahaseeb28 avatar Apr 19 '22 12:04 syedahaseeb28

Did you add the following lines to your CMakeLists.txt?

find_package(Drogon CONFIG REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon)

an-tao avatar Apr 19 '22 13:04 an-tao