Closed recolic closed 6 years ago
我使用ArchLinux,在编译时遇到了很多的编译错误,目测是qt版本问题。希望能够提供预编译的二进制文件。
修改过的CMakeLists.txt
cmake_minimum_required(VERSION 2.6) project(Qtqq) set(version 0.8.2-alpha) set(CMAKE_VERBOSE_MAKEFILE ON) INCLUDE(FindX11) find_package(Qt4 REQUIRED) set(HAVE_X11_EXTENSIONS_SHAPE_H ${X11_Xshape_FOUND}) set(HAVE_X11_EXTENSIONS_XFIXES_H ${X11_Xfixes_FOUND}) # uninstall target configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) include(CheckIncludeFiles) include(FindPkgConfig) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() if (NOT CMAKE_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX "/usr") endif() set(package ${PROJECT_NAME}) if ( CMAKE_BUILD_TYPE MATCHES "Debug" ) set(DEBUG_MODE 1) set(prefix ${PROJECT_SOURCE_DIR}) set(pkgdatadir ${prefix}/data) set(PLUGIN_DIR ${CMAKE_CURRENT_BINARY_DIR}/lib/plugins) else () set(prefix ${CMAKE_INSTALL_PREFIX}) set(pkgdatadir ${prefix}/share/${package}) set(PLUGIN_DIR ${prefix}/lib/${PROJECT_NAME}/plugins) endif () set(bindir ${prefix}/bin) set(libdir ${prefix}/lib) set(includedir ${prefix}/include) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib) set(PLUGIN_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH}/plugins) configure_file(${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_BINARY_DIR}/config.h) configure_file(${PROJECT_SOURCE_DIR}/config-ksnapshot.h.cmake ${PROJECT_BINARY_DIR}/config-ksnapshot.h) include_directories(${PROJECT_BINARY_DIR}) include_directories(/usr/include/qt/QtWebKitWidgets) include_directories(/usr/include/qt) set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty) set(LOG4QT_INCLUDE_DIR ${THIRD_PARTY_DIR}/log4qt/src) set(QXGS_INCLUDE_DIR ${THIRD_PARTY_DIR}/qxtglobalshortcut) set(JSONCPP_INCLUDE_DIR ${THIRD_PARTY_DIR}/jsoncpp/include) set(TRANSLATIONS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data/translations) add_subdirectory(cmake) add_subdirectory(3rdparty) add_subdirectory(data) add_subdirectory(src)
错误
recolic@RECOLICPC ~/t/Q/build (master) [2]> make /usr/bin/cmake -H/home/recolic/tmp/Qtqq -B/home/recolic/tmp/Qtqq/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/recolic/tmp/Qtqq/build/CMakeFiles /home/recolic/tmp/Qtqq/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: 进入目录“/home/recolic/tmp/Qtqq/build” make -f 3rdparty/log4qt/src/CMakeFiles/log4qt.dir/build.make 3rdparty/log4qt/src/CMakeFiles/log4qt.dir/depend make[2]: 进入目录“/home/recolic/tmp/Qtqq/build” cd /home/recolic/tmp/Qtqq/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/recolic/tmp/Qtqq /home/recolic/tmp/Qtqq/3rdparty/log4qt/src /home/recolic/tmp/Qtqq/build /home/recolic/tmp/Qtqq/build/3rdparty/log4qt/src /home/recolic/tmp/Qtqq/build/3rdparty/log4qt/src/CMakeFiles/log4qt.dir/DependInfo.cmake --color= make[2]: 离开目录“/home/recolic/tmp/Qtqq/build” make -f 3rdparty/log4qt/src/CMakeFiles/log4qt.dir/build.make 3rdparty/log4qt/src/CMakeFiles/log4qt.dir/build make[2]: 进入目录“/home/recolic/tmp/Qtqq/build” [ 0%] Building CXX object 3rdparty/log4qt/src/CMakeFiles/log4qt.dir/log4qt/helpers/logerror.cpp.o cd /home/recolic/tmp/Qtqq/build/3rdparty/log4qt/src && /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dlog4qt_EXPORTS -I/home/recolic/tmp/Qtqq/build -I/usr/include/qt/QtWebKitWidgets -I/usr/include/qt -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -I/home/recolic/tmp/Qtqq/3rdparty/log4qt/src -O3 -DNDEBUG -fPIC -o CMakeFiles/log4qt.dir/log4qt/helpers/logerror.cpp.o -c /home/recolic/tmp/Qtqq/3rdparty/log4qt/src/log4qt/helpers/logerror.cpp /home/recolic/tmp/Qtqq/3rdparty/log4qt/src/log4qt/helpers/logerror.cpp: 在构造函数‘Log4Qt::LogError::LogError(const char*, int, const char*, const char*, Log4Qt::LogError::Encoding)’中: /home/recolic/tmp/Qtqq/3rdparty/log4qt/src/log4qt/helpers/logerror.cpp:114:28: 错误:‘codecForTr’不是‘QTextCodec’的成员 mMessage = QTextCodec::codecForTr()->toUnicode(pMessage); ^~~~~~~~~~ /home/recolic/tmp/Qtqq/3rdparty/log4qt/src/log4qt/helpers/logerror.cpp: 在成员函数‘QString Log4Qt::LogError::translatedMessage() const’中: /home/recolic/tmp/Qtqq/3rdparty/log4qt/src/log4qt/helpers/logerror.cpp:132:109: 错误:‘UnicodeUTF8’不是‘QCoreApplication’的成员 return QCoreApplication::translate(mContext.toLatin1(), mMessage.toUtf8().data(), 0, QCoreApplication::UnicodeUTF8); ^~~~~~~~~~~ make[2]: *** [3rdparty/log4qt/src/CMakeFiles/log4qt.dir/build.make:261:3rdparty/log4qt/src/CMakeFiles/log4qt.dir/log4qt/helpers/logerror.cpp.o] 错误 1 make[2]: 离开目录“/home/recolic/tmp/Qtqq/build” make[1]: *** [CMakeFiles/Makefile2:181:3rdparty/log4qt/src/CMakeFiles/log4qt.dir/all] 错误 2 make[1]: 离开目录“/home/recolic/tmp/Qtqq/build” make: *** [Makefile:133:all] 错误 2
我使用ArchLinux,在编译时遇到了很多的编译错误,目测是qt版本问题。希望能够提供预编译的二进制文件。
修改过的CMakeLists.txt
错误