Cygwin上的声子抱怨QT编译了QT,而无需支持-fvisibility =隐藏



我试图在cygwin中的测试程序中使用声子库。

cmake用于构建:

find_package(需要声子)

,但它会生成以下错误消息:

$ make
-- Found Qt-Version 4.8.5 (using /usr/bin/qmake-qt4)
-- Found X11: /usr/lib/libX11.dll.a
-- Found Automoc4: /usr/bin/automoc4.exe
CMake Error at /usr/share/phonon/buildsystem/FindPhononInternal.cmake:296 (message):
  Qt compiled without support for -fvisibility=hidden.  This will break
  plugins and linking of some applications.  Please fix your Qt installation.
Call Stack (most recent call first):
  /usr/lib/cmake/phonon/PhononConfig.cmake:30 (include)
  CMakeLists.txt:8 (find_package)

我的测试程序已经成功使用了QT,我使用Cygwin设置程序同时安装了QT和声子。

我尝试编译Phonon的CMake脚本中使用的测试程序:

#include <QtCore/QtGlobal>
int main()
{
  #ifndef QT_VISIBILITY_AVAILABLE 
  #error QT_VISIBILITY_AVAILABLE is not available
  #endif 
}

确实没有编译该程序:

main.cpp:24:3: error: #error QT_VISIBILITY_AVAILABLE is not available
  #error QT_VISIBILITY_AVAILABLE is not available
   ^

那怎么了?我认为,如果Cygwin的人们为声子提供包裹,他们将确保它与QT套件兼容。问题只发生在Cygwin上,我在Gentoo机器上尝试了它,并且在那里毫无问题地编译。

在不支持Elf可见性属性(例如Cygwin和Windows)的平台上,KDE组件需要使用-D__KDE_HAVE_GCC_VISIBILITY=NO配置,以避免此错误。Cygwin声子软件包(以及Cygwin Ports KDE软件包)是使用Cygport构建的,该cygport在KDE4_COMPILE中自动处理此操作。

相关内容

  • 没有找到相关文章

最新更新