"QSslSocket: error in msvc_2019 windows compile issue"
-
Hi,
I am using visual studio 2019 and QT6I have error here
Can some one help I have msvc compiler from QT6. QSslSocket issue from Linker
-
Hi,
I am using visual studio 2019 and QT6I have error here
Can some one help I have msvc compiler from QT6. QSslSocket issue from Linker
Please re-read your post and then think about how others can help you. You did not provide anything except a linker error. Neither what you're trying to build nor some code / CMakeLists.txt / pro-file.
-
Please re-read your post and then think about how others can help you. You did not provide anything except a linker error. Neither what you're trying to build nor some code / CMakeLists.txt / pro-file.
@Christian-Ehrlicher
unfortunately the code is too big I could not able to attach it.In Linux for me it is working good with GCC same program.
Also same code no changes. I would like to build for windows MSVC_2019_x64 then I fet both detor errors.
I got the linker issue:
unresolved external symbol "public: virtual void * __cdecl QSslSocket::`scalar deleting destructor'(unsigned int)" (??_GQSslSocket@@UEAAPEAXI@Z)
unresolved external symbol "public: virtual void * __cdecl QSslSocket::`vector deleting destructor'(unsigned int)" (??_GQSslSocket@@UEAAPEAXI@Z)
-
@Christian-Ehrlicher
unfortunately the code is too big I could not able to attach it.In Linux for me it is working good with GCC same program.
Also same code no changes. I would like to build for windows MSVC_2019_x64 then I fet both detor errors.
I got the linker issue:
unresolved external symbol "public: virtual void * __cdecl QSslSocket::`scalar deleting destructor'(unsigned int)" (??_GQSslSocket@@UEAAPEAXI@Z)
unresolved external symbol "public: virtual void * __cdecl QSslSocket::`vector deleting destructor'(unsigned int)" (??_GQSslSocket@@UEAAPEAXI@Z)
@srinath_ramamoorthy
Maybe you are not linking against QSsl stuff?
You could certainly start with showing your "CMakeLists.txt / pro-file." as @Christian-Ehrlicher asked, that is not "too big". -
@srinath_ramamoorthy
Maybe you are not linking against QSsl stuff?
You could certainly start with showing your "CMakeLists.txt / pro-file." as @Christian-Ehrlicher asked, that is not "too big".This post is deleted! -
@srinath_ramamoorthy
Maybe you are not linking against QSsl stuff?
You could certainly start with showing your "CMakeLists.txt / pro-file." as @Christian-Ehrlicher asked, that is not "too big".@JonB
cmd:cmake .. -G "Visual Studio 16 2019" -A x64 -D"CMAKE_BUILD_TYPE=Debug" -D"CMAKE_PREFIX_PATH=C:/Qt/6.5.1/msvc2019_64/"
Cmake.txt
cmake_minimum_required(VERSION 3.14) cmake_policy(SET CMP0071 NEW) cmake_policy(SET CMP0011 NEW) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../etc/cmake/modules ${CMAKE_MODULE_PATH}) if(NOT PLUSCONTROL_ROOTDIR) get_filename_component(PLUSCONTROL_ROOTDIR ../../ ABSOLUTE) endif() include("${PLUSCONTROL_ROOTDIR}/etc/cmake/pluscontrol.cmake") IF(CMAKE_VERSION VERSION_GREATER 3.16) cmake_policy(SET CMP0097 NEW) endif() INCLUDE(CheckIncludeFile) INCLUDE(CheckSymbolExists) if(DEFINED ENV{JENKINS_HOME}) message("CMAKE: I'm running on Jenkins") set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../etc/cmake/modules ${CMAKE_MODULE_PATH}) set(WINDOWS_EXPORT_ALL_SYMBOLS ON) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(OPT_STATIC "ON") include(GetGitRevisionDescription) git_describe_root(VERSION HASH "${CMAKE_CURRENT_LIST_DIR}/../../" --tags --dirty=-dirty) git_generate_version_files(VERSION_NUMBER ${VERSION} ${HASH} ${CMAKE_SOURCE_DIR}/src/version.cpp ${CMAKE_SOURCE_DIR}/inc/version.h) message("CMAKE: VERSION_MAJOR: ${VERSION_MAJOR} ~~~ VERSION_MINOR: ${VERSION_MINOR} ~~~ VERSION_PATCH: ${VERSION_PATCH} ~~~ VERSION_SUFFIX: ${VERSION_SUFFIX}") #if(WIN32) # set(OPT_CPACK "IFW" CACHE STRING "Select cpack generator: IFW/Debian/ZIP") #else() # set(OPT_CPACK "Debian" CACHE STRING "Select cpack generator: IFW/Debian/ZIP") # option(OPT_PLATFORM_CROSSCOMPILE "Target crosscompile: ON/OFF" OFF) #endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) ELSE() set(VERSION_MAJOR 0) set(VERSION_MINOR 0) set(VERSION_PATCH 0) set(VERSION_SUFFIX "") set(VERSION_NUMBER "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") endif() set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) macro(set_cxx_default_flags) endmacro() project(tessitur VERSION ${VERSION_NUMBER} LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(PROTO ${CMAKE_SOURCE_DIR}/data/proto) message("CMAKE: Proto is set to: ${PROTO}") if(FALSE) macro(set_cxx_default_flags) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-show-option") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmax-errors=5") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-qual") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wctor-dtor-privacy") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdisabled-optimization") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat=2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Winit-self") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wlogical-op") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-include-dirs") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnoexcept") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wparentheses") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wredundant-decls") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-promo") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-aliasing") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-null-sentinel") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-overflow=5") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wswitch-default") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wundef") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunreachable-code") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wvariadic-macros") endmacro() endif() if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set_cxx_default_flags() elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") set_cxx_default_flags() elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") #message(FATAL_ERROR "compiler not supported: ${CMAKE_CXX_COMPILER_ID}") set_cxx_default_flags() elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") message(FATAL_ERROR "compiler not supported: ${CMAKE_CXX_COMPILER_ID}") else() message(FATAL_ERROR "compiler not supported: ${CMAKE_CXX_COMPILER_ID}") endif() if(OPT_FORCE_QT_MAJOR_VERSION) find_package(QT NAMES Qt${OPT_FORCE_QT_MAJOR_VERSION} COMPONENTS Core Quick Network LinguistTools REQUIRED) else(OPT_FORCE_QT_MAJOR_VERSION) find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) endif(OPT_FORCE_QT_MAJOR_VERSION) message(STATUS "Using Qt${QT_VERSION_MAJOR} (${QT_VERSION})") #find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick Network LinguistTools REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick Network LinguistTools REQUIRED) set(APPLICATION "Test" CACHE STRING "Application.") set(TS_DIRECTORY "data/i18n") set(TS_FILES "${TS_DIRECTORY}/${APPLICATION}_ar_SA.ts" "${TS_DIRECTORY}/${APPLICATION}_de_DE.ts" "${TS_DIRECTORY}/${APPLICATION}_el_GR.ts" "${TS_DIRECTORY}/${APPLICATION}_en_US.ts" "${TS_DIRECTORY}/${APPLICATION}_es_ES.ts" "${TS_DIRECTORY}/${APPLICATION}_fr_FR.ts" "${TS_DIRECTORY}/${APPLICATION}_it_IT.ts" "${TS_DIRECTORY}/${APPLICATION}_nl_BE.ts" "${TS_DIRECTORY}/${APPLICATION}_nl_NL.ts" "${TS_DIRECTORY}/${APPLICATION}_ro_RO.ts") set(KEY_LOCALE_SUPPORTED "locale/supported" CACHE STRING "Settings key for supported locales.") set(KEY_LOCALE_CURRENT "locale/current" CACHE STRING "Settings key for currently used locale.") set(KEY_LOCALE_FAVORITES "locale/favorites" CACHE STRING "Settings key for favorite locales.") set(LOCALES_FAVORITES_MAXIMUM 4 CACHE STRING "Maximum number of favorite locales.") set_property(CACHE LOCALES_FAVORITES_MAXIMUM PROPERTY STRINGS "0;1;2;3;4") set(LOCALES_SUPPORTED "ar_SA, de_DE, el_GR, es_ES, en_US, fr_FR, it_IT, nl_NL, ro_RO" CACHE STRING "Supported locales. Ensure synchronization with available translation files.") set(LOCALES_FAVORITES "en_US" CACHE STRING "Favorite locales. Ensure availability among translation files.") set(LOCALE_DEFAULT "en_US" CACHE STRING "Default locale. Ensure availability among translation files.") set(PROJECT_SOURCES main.cpp qml.qrc src/application/branch.cpp src/application/client.cpp src/application/parameter.cpp src/application/power_module.cpp src/application/state.cpp src/data/api/protobuf.cpp src/data/book.cpp src/data/connection.cpp src/data/log.cpp src/data/log_entry.cpp src/data/parameters.cpp src/data/scenarios.cpp src/data/simulation/connection.cpp src/data/simulation/tessi/arm.cpp src/data/simulation/tessi/power_module.cpp src/data/simulation/tessi/server.cpp src/data/simulation/tessi/server_processing.cpp src/data/simulation/tessi/socket.cpp src/data/topology.cpp src/presentation/action.cpp src/presentation/model_branch.cpp src/presentation/model_configuration.cpp src/presentation/model_connection.cpp src/presentation/model_languages.cpp src/presentation/model_log.cpp src/presentation/model_power_module.cpp src/presentation/model_scenario.cpp src/presentation/model_scenarios.cpp src/presentation/model_settings.cpp src/presentation/model_state.cpp src/presentation/model_tree_state.cpp src/presentation/proxy_branch.cpp src/presentation/proxy_configuration.cpp src/presentation/proxy_connection.cpp src/presentation/proxy_languages.cpp src/presentation/proxy_log.cpp src/presentation/proxy_power_module.cpp src/presentation/proxy_scenario.cpp src/presentation/proxy_scenarios.cpp src/presentation/proxy_settings.cpp src/presentation/proxy_state.cpp src/presentation/proxy_tree_state.cpp src/util/version.cpp #${TS_FILES} #TODO: *.qm löschen und neu generieren ) include_directories(${Protobuf_INCLUDE_DIRS}) set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/data/ui/icon_application/icon.rc") if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(tessitur MANUAL_FINALIZATION ${PROJECT_SOURCES} ${app_icon_resource_windows} ) # Define target properties for Android with Qt 6 as: # set_property(TARGET tessitur APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR # ${CMAKE_CURRENT_SOURCE_DIR}/android) # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES}) else() if(ANDROID) add_library(tessitur SHARED ${PROJECT_SOURCES} ) # Define properties for Android with Qt 5 after find_package() calls as: # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") else() add_executable(tessitur ${PROJECT_SOURCES} ${app_icon_resource_windows} ) endif() qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES}) endif() AddPluscontrolLibrary(tessitur ../plustools/ptsrv_api/protos ptsrv_api_protos) option(WITH_TESTS "Compile unit tests." OFF) set(KEY_DIRECTORY_LOG "directory/log" CACHE STRING "Settings key to use for logging directory.") set(KEY_LOG_EXTENSION "log/file/extension" CACHE STRING "Settings key to use for log file extension.") set(KEY_LOG_LEVEL_CLIENT_CONSOLE "log/level/client/console" CACHE STRING "Settings key to use for client console logging severity.") set(KEY_LOG_LEVEL_CLIENT_FILE "log/level/client/file" CACHE STRING "Settings key to use for client file logging severity.") set(KEY_LOG_LEVEL_CLIENT_HISTORY "log/level/client/history" CACHE STRING "Settings key to use for client history logging severity.") set(KEY_LOG_LEVEL_SERVER_CONSOLE "log/level/server/console" CACHE STRING "Settings key to use for server console logging severity.") set(KEY_LOG_LEVEL_SERVER_FILE "log/level/server/file" CACHE STRING "Settings key to use for server file logging severity.") set(KEY_LOG_LEVEL_SERVER_HISTORY "log/level/server/history" CACHE STRING "Settings key to use for server history logging severity.") set(KEY_LOG_PREFIX "log/file/prefix" CACHE STRING "Settings key to use for log file prefix.") set(KEY_LOG_ROTATION_FILES "log/file/rotation/files" CACHE STRING "Settings key to use for number of last log files kept.") set(KEY_LOG_ROTATION_SIZE "log/file/rotation/size" CACHE STRING "Settings key to use for maximum log file size before rotation.") set(KEY_DIRECTORY_SCENARIOS "directory/scenarios" CACHE STRING "Settings key to use for scenarios directory.") set(KEY_SCENARIOS_EXTENSION "scenarios/extension" CACHE STRING "Settings key to use for scenario file extension.") set(KEY_SCENARIOS_PREFIX "scenarios/prefix" CACHE STRING "Settings key to use for scenario file prefix.") set(LOG_DIRECTORY "log" CACHE STRING "Directory used for logging.") set(LOG_FILE_EXTENSION "log" CACHE STRING "Extension used for the logging file.") set(LOG_FILE_LAST_KEPT 10 CACHE STRING "Default for number of log files kept.") set(LOG_FILE_PREFIX "tessitur" CACHE STRING "Prefix used for the logging file.") set(LOG_FILE_SIZE 1048576 CACHE STRING "Default for maximum log file size before rotation.") set(LOG_LEVEL_CLIENT_CONSOLE 7 CACHE STRING "Logging severity for client console. Verbosity increases with value.") set(LOG_LEVEL_CLIENT_FILE 7 CACHE STRING "Logging severity for client file. Verbosity increases with value.") set(LOG_LEVEL_CLIENT_HISTORY 2 CACHE STRING "Logging severity for client history. Verbosity increases with value.") set(LOG_LEVEL_SERVER_CONSOLE 7 CACHE STRING "Logging severity for server console. Verbosity increases with value.") set(LOG_LEVEL_SERVER_FILE 7 CACHE STRING "Logging severity for server file. Verbosity increases with value.") set(LOG_LEVEL_SERVER_HISTORY 2 CACHE STRING "Logging severity for server history. Verbosity increases with value.") set(SCENARIOS_DIRECTORY "scenarios" CACHE STRING "Directory used for scenarios.") set(SCENARIOS_FILE_EXTENSION "scenario" CACHE STRING "Extension used for scenarios.") set(SCENARIOS_FILE_PREFIX "tessitur" CACHE STRING "Prefix used for scenarios.") #add_compile_definitions(ON=true) #add_compile_definitions(OFF=false) set(CONNECTION_SIMULATION false CACHE BOOL "Indicates whether the connection to the server is to be simulated.") set_property(CACHE LOG_LEVEL_CLIENT_CONSOLE PROPERTY STRINGS "0;1;2;3;4") set_property(CACHE LOG_LEVEL_CLIENT_FILE PROPERTY STRINGS "0;1;2;3;4") set_property(CACHE LOG_LEVEL_CLIENT_HISTORY PROPERTY STRINGS "0;1;2;3;4") set_property(CACHE LOG_LEVEL_SERVER_CONSOLE PROPERTY STRINGS "0;1;2;3;4;5;6;7") set_property(CACHE LOG_LEVEL_SERVER_FILE PROPERTY STRINGS "0;1;2;3;4;5;6;7") set_property(CACHE LOG_LEVEL_SERVER_HISTORY PROPERTY STRINGS "0;1;2;3;4;5;6;7") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/include/configuration.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/configuration.hpp" @ONLY) include_directories(${Qt${QT_VERSION_MAJOR}Network_INCLUDE_DIRS}) target_include_directories(tessitur PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") target_compile_definitions(tessitur PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>) target_compile_definitions(tessitur PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_DECLARATIVE_DEBUG>) target_link_libraries(tessitur PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::Network ${Protobuf_LIBRARIES}) set_target_properties(tessitur PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) if(QT_VERSION_MAJOR EQUAL 6) qt_import_qml_plugins(tessitur) qt_finalize_executable(tessitur) endif() if (WITH_TESTS) add_subdirectory(test) endif()
-
-
Minimize your CMakeLists.txt and your app to only link against the Qt libs in a simple main.cpp to see what happens. Your CMakeLists.txt you way to much for a problem resolution.