cmake --version cmake version 3.5.2 qmake-qt5 --version QMake version 3.0 Using Qt version 5.6.2 in /usr/lib64
This is an old VM that will be retired in around a month when a new machine arrives. At the very end of running cmake I was getting this: - Configuring done Warning: Source file "/home/martin/wireshark_gl-build/ui/qt/CMakeFiles/qtui.dir/qrc_languages.cpp" is listed multiple times for target "qtui". Warning: Source file "/home/martin/wireshark_gl-build/ui/qt/CMakeFiles/qtui.dir/qrc_layout.cpp" is listed multiple times for target "qtui". Warning: Source file "/home/martin/wireshark_gl-build/ui/qt/CMakeFiles/qtui.dir/qrc_stock_icons.cpp" is listed multiple times for target "qtui". Warning: Source file "/home/martin/wireshark_gl-build/ui/qt/CMakeFiles/qtui.dir/qrc_wsicon.cpp" is listed multiple times for target "qtui". Warning: Source file "/home/martin/wireshark_gl-build/ui/qt/CMakeFiles/qtui.dir/qrc_i18n.cpp" is listed multiple times for target "qtui". -- Generating done -- Build files have been written to: /home/martin/wireshark_gl-build If I move the Q_INIT_RESOURCE() calls to main.cpp (just before ws_app is created), I still get the link error. Moving the CMAKE_AUTO stuff back to the top-level CMakeLists.txt does fix this for me, i.e. diff --git a/CMakeLists.txt b/CMakeLists.txt index ebc42d736b..161e978ce2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1135,9 +1135,6 @@ ws_find_package(Systemd BUILD_sdjournal HAVE_SYSTEMD) # Build the Qt GUI? if(BUILD_wireshark) - set(CMAKE_AUTOMOC ON) - set(CMAKE_AUTOUIC ON) - set(CMAKE_AUTORCC ON) # Untested, may not work if CMAKE_PREFIX_PATH gets overwritten # somewhere. The if WIN32 in this place is annoying as well. diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt index 2e08d60832..a63829eb61 100644 --- a/ui/qt/CMakeLists.txt +++ b/ui/qt/CMakeLists.txt @@ -630,6 +630,11 @@ set(WIRESHARK_QT_QRC ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc ) +set(CMAKE_AUTOMOC TRUE) +set(CMAKE_AUTOUIC TRUE) +set(CMAKE_AUTORCC TRUE) + + if(NOT Qt5Widgets_VERSION VERSION_LESS "5.9") # Drop the file modification time of source files from generated files # to help with reproducible builds. We do not use QFileInfo.lastModified Martin On Wed, Mar 31, 2021 at 12:38 AM Gerald Combs <ger...@wireshark.org> wrote: > What versions of CMake and Qt are you using? I enabled CMAKE_AUTORCC > earlier on in the configuration process in be2b0fc810, which might have > caused this. You might try moving `set(CMAKE_AUTO...` back to > ui/qt/CMakeLists.txt, but if that fixes the problem then we might have to > enable CMAKE_AUTO* earlier or later depending on our CMake version. > > I also noticed that https://doc.qt.io/qt-5/qdir.html#Q_INIT_RESOURCE says > > "This macro cannot be used in a namespace. It should be called from > main()." > > Maybe we need to move our Q_INIT_RESOURCE calls from > wireshark_application.cpp to main.cpp? > > On 3/30/21 2:15 AM, Martin Mathieson via Wireshark-dev wrote: > > I started getting this link error a day or 2 back: > > > > [ 98%] Linking CXX executable run/wireshark > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > ui/qt/CMakeFiles/qtui.dir/wireshark_application.cpp.o: in function > `WiresharkApplication::WiresharkApplication(int&, char**)': > > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:639: undefined > reference to `qInitResources_about()' > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:640: undefined > reference to `qInitResources_i18n()' > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:641: undefined > reference to `qInitResources_layout()' > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:642: undefined > reference to `qInitResources_stock_icons()' > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:643: undefined > reference to `qInitResources_wsicon()' > > /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: > /home/martin/wireshark_gl/ui/qt/wireshark_application.cpp:644: undefined > reference to `qInitResources_languages()' > > collect2: error: ld returned 1 exit status > > > > Haven't worked out exactly why this is happening (or at which commit it > started to fail). If I do need to update Qt, the minimum version check in > CMake isn't catching it. > > > > Martin > > > > > > > ___________________________________________________________________________ > > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > > Archives: https://www.wireshark.org/lists/wireshark-dev > > Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev > > mailto:wireshark-dev-requ...@wireshark.org > ?subject=unsubscribe > > > >
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe