zhanlangsir / Qtqq

使用qt开发的基于webqq3.0协议的qq!
198 stars 74 forks source link

希望增加pre-build release #55

Closed recolic closed 6 years ago

recolic commented 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