don’t use but need to run application?
I write my qt application don’t use qtwebkit, qtsql, qtxml, qtnetwork, I build successful but when create standard alone application and run then have error : unable to locate component qtsql4.dll not found. When I add qtsql4.dll then have error unable to locate component
qtxml4.dll not found,…. final, I add all 4 dll follow: qtwebkit4.dll, qtsql4.dll, qtxml4.dll, qtnetwork4.dll then application run successful.Why in my code don’t use these libraries but when run still need them?
Re: don’t use but need to run application?
Maybe you enabled all those libraries in your project file? What does it look like?
Re: don’t use but need to run application?
my cmakelists.txt as follow:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(GN500)
SET(VERSION 1.0.0)
INCLUDE(InstallRequiredSystemLibraries)
SET(VERSION_MAJOR 1)
SET(VERSION_MINOR 0)
SET(VERSION_PATCH 0)
FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})
#SET(QT_USE_QTSQL false)
#SET(QT_USE_QTWEBKIT false)
#SET(QT_USE_QTXML false)
#SET(QT_USE_QTNETWORK false)
FILE(GLOB ${PROJECT_NAME}_HDRS *.h)
FILE(GLOB ${PROJECT_NAME}_MOC_SRCS *.h)
FILE(GLOB ${PROJECT_NAME}_SRCS *.cpp)
FILE(GLOB ${PROJECT_NAME}_RCCS *.qrc)
QT4_WRAP_CPP(${PROJECT_NAME}_MOCS ${${PROJECT_NAME}_MOC_SRCS})
QT4_ADD_RESOURCES(${PROJECT_NAME}_RCC_SRCS ${${PROJECT_NAME}_RCCS})
source_group("Resource Files" FILES ${${PROJECT_NAME}_RCCS})
source_group("Generated Files" FILES ${${PROJECT_NAME}_MOCS} ${${PROJECT_NAME}_RCC_SRCS})
IF (WIN32)
IF (MSVC)
SET (${PROJECT_NAME}_SRCS ${${PROJECT_NAME}_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/appico.rc)
ELSE(MSVC)
IF (NOT WINDRES)
FIND_PROGRAM(WINDRES windres)
IF (NOT WINDRES)
MESSAGE(FATAL_ERROR "windres not found - aborting")
ENDIF (NOT WINDRES)
ENDIF (NOT WINDRES)
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/icon.o
COMMAND ${WINDRES} -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/appico.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/icon.o )
SET(${PROJECT_NAME}_SRCS ${${PROJECT_NAME}_SRCS ${CMAKE_CURRENT_BINARY_DIR}/icon.o)
ENDIF (MSVC)
ENDIF (WIN32)
IF (WIN32)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
ENDIF (WIN32)
add_definitions("-Ddisplay_export=__declspec(dllimport)")
#link_libraries(${CMAKE_SOURCE_DIR}/display/build2008)
#find_library(lib NAMES display ${CMAKE_SOURCE_DIR}/display/build2008)
#include_directories(${CMAKE_SOURCE_DIR}/display)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/display)
ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/display)
ADD_EXECUTABLE(${PROJECT_NAME} ${${PROJECT_NAME}_SRCS} ${${PROJECT_NAME}_HDRS} ${${PROJECT_NAME}_MOCS} ${${PROJECT_NAME}_RCC_SRCS})
#SET(EXTRA_LIBS ${EXTRA_LIBS} display)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
${QT_QTMAIN_LIBRARY}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${QT_QT3SUPPORT_LIBRARY}
${QT_QTSVG_LIBRARY}
display
)
SET(CPACK_PACKAGE_NAME "GN500")
SET(CPACK_PACKAGE_VENDOR "tt80 Software")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Phan mem mo phong khi tai GN500")
SET(CPACK_PACKAGE_CONTACT "Phong Tin Hoc - Trung tam 80")
SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
SET(CPACK_GENERATOR NSIS)
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
"${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}
CreateDirectory '\\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\"'
CreateShortCut \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\${PROJECT_NAM E}.lnk\\\ \\\$INSTDIR\\\\bin\\\\${PROJECT_NAME}.exe\\\"
CreateShortCut \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\Uninstall.lnk \\\ \\\$INSTDIR\\\\Uninstall.exe\\\"
CreateShortCut \\\$DESKTOP\\\\${PROJECT_NAME}.lnk\\\ \\\$INSTDIR\\\\bin\\\\${PROJECT_NAME}.exe\\\"
")
message(${CPACK_NSIS_EXTRA_INSTALL_COMMANDS})
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
"${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}
Delete '\\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\${PROJECT_NA ME}.lnk\\\"'
Delete \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\Uninstall.lnk \\\"
RmDir \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\"
Delete \\\$DESKTOP\\\\${PROJECT_NAME}.lnk\\\"
")
message(${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS})
INSTALL(TARGETS GN500 DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtCore4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtGui4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtSvg4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/Qt3Support4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtSql4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtXml4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtNetwork4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtWebKit4.dll DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/appico.ico DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/GN500.chm DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/hh.exe DESTINATION bin)
INCLUDE(CPack)
Re: don’t use but need to run application?
And if you uncomment these?
Quote:
#SET(QT_USE_QTSQL false)
#SET(QT_USE_QTWEBKIT false)
#SET(QT_USE_QTXML false)
#SET(QT_USE_QTNETWORK false)
and comment related entries in the INSTALL section?
Re: don’t use but need to run application?
I will receive error: unable to locate component qxml4.dll not found, for example. I also don't understand this!
Re: don’t use but need to run application?
What does your project file look like now?
Re: don’t use but need to run application?
I forgot, I use 1 library is display with cmakelists.txt as follow:
cmake_minimum_required(VERSION 2.8)
project(display)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
set(QT_USE_QTCORE true)
set(QT_USE_QTGUI true)
FILE(GLOB display_HDRS *.h)
FILE(GLOB display_MOC_SRCS *.h)
FILE(GLOB display_SRCS *.cpp)
SET(display_RCCS QDisplay.qrc)
QT4_WRAP_CPP(display_MOCS ${display_MOC_SRCS})
QT4_ADD_RESOURCES(display_RCC_SRCS ${display_RCCS})
source_group("Generated Files" FILES ${display_MOCS} ${display_RCC_SRCS})
source_group("Resource Files" FILES ${display_RCCS})
#add_definitions("-DQCORE_EXPORT=__declspec(dllimport)")
add_definitions("-Ddisplay_export=__declspec(dllexport)")
link_directories(C:/Qt/4.8.0/lib)
#set(CMAKE_DEBUG_POSTFIX d)
add_library(display
${display_SRCS}
${display_HDRS}
${display_MOCS}
${display_RCC_SRCS}
)
target_link_libraries(display
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${QT_QTSVG_LIBRARY}
)
Re: don’t use but need to run application?
Could you answer my question, please?
Re: don’t use but need to run application?
I don't clear understand your quesion, please ask again! my project have many files...
Re: don’t use but need to run application?
I'm asking to post your cmake project file again after incorporating changes I told you to do in post #4.
Re: don’t use but need to run application?
ok, cmakelists.txt look as follow:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(GN500)
SET(VERSION 1.0.0)
INCLUDE(InstallRequiredSystemLibraries)
SET(VERSION_MAJOR 1)
SET(VERSION_MINOR 0)
SET(VERSION_PATCH 0)
FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})
SET(QT_USE_QTSQL false)
SET(QT_USE_QTWEBKIT false)
SET(QT_USE_QTXML false)
SET(QT_USE_QTNETWORK false)
FILE(GLOB ${PROJECT_NAME}_HDRS *.h)
FILE(GLOB ${PROJECT_NAME}_MOC_SRCS *.h)
FILE(GLOB ${PROJECT_NAME}_SRCS *.cpp)
FILE(GLOB ${PROJECT_NAME}_RCCS *.qrc)
QT4_WRAP_CPP(${PROJECT_NAME}_MOCS ${${PROJECT_NAME}_MOC_SRCS})
QT4_ADD_RESOURCES(${PROJECT_NAME}_RCC_SRCS ${${PROJECT_NAME}_RCCS})
source_group("Resource Files" FILES ${${PROJECT_NAME}_RCCS})
source_group("Generated Files" FILES ${${PROJECT_NAME}_MOCS} ${${PROJECT_NAME}_RCC_SRCS})
IF (WIN32)
IF (MSVC)
SET (${PROJECT_NAME}_SRCS ${${PROJECT_NAME}_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/appico.rc)
ELSE(MSVC)
IF (NOT WINDRES)
FIND_PROGRAM(WINDRES windres)
IF (NOT WINDRES)
MESSAGE(FATAL_ERROR "windres not found - aborting")
ENDIF (NOT WINDRES)
ENDIF (NOT WINDRES)
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/icon.o
COMMAND ${WINDRES} -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/appico.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/icon.o )
SET(${PROJECT_NAME}_SRCS ${${PROJECT_NAME}_SRCS ${CMAKE_CURRENT_BINARY_DIR}/icon.o)
ENDIF (MSVC)
ENDIF (WIN32)
IF (WIN32)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
ENDIF (WIN32)
add_definitions("-Ddisplay_export=__declspec(dllimport)")
#link_libraries(${CMAKE_SOURCE_DIR}/display/build2008)
#find_library(lib NAMES display ${CMAKE_SOURCE_DIR}/display/build2008)
#include_directories(${CMAKE_SOURCE_DIR}/display)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/display)
ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/display)
ADD_EXECUTABLE(${PROJECT_NAME} ${${PROJECT_NAME}_SRCS} ${${PROJECT_NAME}_HDRS} ${${PROJECT_NAME}_MOCS} ${${PROJECT_NAME}_RCC_SRCS})
#SET(EXTRA_LIBS ${EXTRA_LIBS} display)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
${QT_QTMAIN_LIBRARY}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${QT_QT3SUPPORT_LIBRARY}
${QT_QTSVG_LIBRARY}
display
)
SET(CPACK_PACKAGE_NAME "GN500")
SET(CPACK_PACKAGE_VENDOR "tt80 Software")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Phan mem mo phong khi tai GN500")
SET(CPACK_PACKAGE_CONTACT "Phong Tin Hoc - Trung tam 80")
SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
SET(CPACK_GENERATOR NSIS)
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
"${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}
CreateDirectory '\\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\"'
CreateShortCut \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\${PROJECT_NAM E}.lnk\\\ \\\$INSTDIR\\\\bin\\\\${PROJECT_NAME}.exe\\\"
CreateShortCut \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\Uninstall.lnk \\\ \\\$INSTDIR\\\\Uninstall.exe\\\"
CreateShortCut \\\$DESKTOP\\\\${PROJECT_NAME}.lnk\\\ \\\$INSTDIR\\\\bin\\\\${PROJECT_NAME}.exe\\\"
")
message(${CPACK_NSIS_EXTRA_INSTALL_COMMANDS})
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
"${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}
Delete '\\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\${PROJECT_NA ME}.lnk\\\"'
Delete \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\\Uninstall.lnk \\\"
RmDir \\\$SMPROGRAMS\\\\${PROJECT_NAME}\\\"
Delete \\\$DESKTOP\\\\${PROJECT_NAME}.lnk\\\"
")
message(${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS})
INSTALL(TARGETS GN500 DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtCore4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtGui4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/QtSvg4.dll DESTINATION bin)
INSTALL(FILES ${QT_BINARY_DIR}/Qt3Support4.dll DESTINATION bin)
#INSTALL(FILES ${QT_BINARY_DIR}/QtSql4.dll DESTINATION bin)
#INSTALL(FILES ${QT_BINARY_DIR}/QtXml4.dll DESTINATION bin)
#INSTALL(FILES ${QT_BINARY_DIR}/QtNetwork4.dll DESTINATION bin)
#INSTALL(FILES ${QT_BINARY_DIR}/QtWebKit4.dll DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/appico.ico DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/GN500.chm DESTINATION bin)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/hh.exe DESTINATION bin)
INCLUDE(CPack)
Re: don’t use but need to run application?
The Qt3 support library, that your project specifically links, requires the Qt XML, SQL, and Network libraries. The question is, does your project really require the Qt3 support library? As far as I can tell no other library requires QtWebKit.