Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

when I transplant a Qt project from windows to Mac, what should I do?



  • Hello everyone:
    I'am a new developer for Qt, since I developed MacOS App use Xcode,now my company let me transplant a exsit windows project in Qt to Mac use Qt for easy maintain, when I opened the project which transplanted form windows use Mac Qt, the Qt always showed the errors like ': expected a qualified name after 'typename'',but it work fine in windows Qt, so I according the tip, and delete the typename in my .cpp it worked fine.
    so sad is the more errors appear just like the last 'typename' error, such as, use property must add 'this->' before property, it also work fine in windows, it's so more errors that cause I have no idea, I feel whether my transplanted project which in Mac Qt configurations is wrong, such as compiler configurations, cause the large errors, Anyone has suggestion, please tell me,thanks!



    pri
    pro


  • Lifetime Qt Champion

    @Princein On MacOS you're using a different compiler and different compilers can behave differently. Can you show some examples for these warnings/errors and the code which triggers them?



  • @jsulm
    This is my errors, Thanks

    21:41:33: Running steps for project FUEditor...
    21:41:33: Configuration unchanged, skipping qmake step.
    21:41:33: Starting: "/usr/bin/make" 
    Makefile:3604: warning: overriding commands for target `qrc_fueditor.o'
    Makefile:3047: warning: ignoring old commands for target `qrc_fueditor.o'
    Makefile:3607: warning: overriding commands for target `moc_videoWidget.o'
    Makefile:3032: warning: ignoring old commands for target `moc_videoWidget.o'
    Makefile:3610: warning: overriding commands for target `moc_VideoWidget_Base.o'
    Makefile:3035: warning: ignoring old commands for target `moc_VideoWidget_Base.o'
    Makefile:3613: warning: overriding commands for target `moc_webcam_widget.o'
    Makefile:3039: warning: ignoring old commands for target `moc_webcam_widget.o'
    Makefile:3616: warning: overriding commands for target `moc_AttrController.o'
    Makefile:2881: warning: ignoring old commands for target `moc_AttrController.o'
    Makefile:3619: warning: overriding commands for target `moc_basemeshviewer.o'
    Makefile:2884: warning: ignoring old commands for target `moc_basemeshviewer.o'
    Makefile:3625: warning: overriding commands for target `moc_CameraController.o'
    Makefile:2887: warning: ignoring old commands for target `moc_CameraController.o'
    Makefile:3628: warning: overriding commands for target `moc_CreateProjectDialog.o'
    Makefile:2893: warning: ignoring old commands for target `moc_CreateProjectDialog.o'
    Makefile:3631: warning: overriding commands for target `moc_fueditor.o'
    Makefile:2926: warning: ignoring old commands for target `moc_fueditor.o'
    Makefile:3634: warning: overriding commands for target `moc_funamawidget.o'
    Makefile:2942: warning: ignoring old commands for target `moc_funamawidget.o'
    Makefile:3637: warning: overriding commands for target `moc_highlighter.o'
    Makefile:2949: warning: ignoring old commands for target `moc_highlighter.o'
    Makefile:3640: warning: overriding commands for target `moc_NamaViewController.o'
    Makefile:2952: warning: ignoring old commands for target `moc_NamaViewController.o'
    Makefile:3643: warning: overriding commands for target `moc_NetController.o'
    Makefile:2958: warning: ignoring old commands for target `moc_NetController.o'
    Makefile:3646: warning: overriding commands for target `moc_PackController.o'
    Makefile:2975: warning: ignoring old commands for target `moc_PackController.o'
    Makefile:3649: warning: overriding commands for target `moc_PreChoiceController.o'
    Makefile:2980: warning: ignoring old commands for target `moc_PreChoiceController.o'
    Makefile:3652: warning: overriding commands for target `moc_SceneContorller.o'
    Makefile:2984: warning: ignoring old commands for target `moc_SceneContorller.o'
    Makefile:3655: warning: overriding commands for target `moc_ScriptDebugDialog.o'
    Makefile:2996: warning: ignoring old commands for target `moc_ScriptDebugDialog.o'
    Makefile:3658: warning: overriding commands for target `moc_StatusBarController.o'
    Makefile:3000: warning: ignoring old commands for target `moc_StatusBarController.o'
    Makefile:3661: warning: overriding commands for target `moc_SyncServerDialogController.o'
    Makefile:3007: warning: ignoring old commands for target `moc_SyncServerDialogController.o'
    Makefile:3664: warning: overriding commands for target `moc_TreeViewController.o'
    Makefile:3021: warning: ignoring old commands for target `moc_TreeViewController.o'
    Makefile:3667: warning: overriding commands for target `moc_TriggerNextCtl.o'
    Makefile:3028: warning: ignoring old commands for target `moc_TriggerNextCtl.o'
    Makefile:3670: warning: overriding commands for target `moc_WorkspaceTreeWidget.o'
    Makefile:3044: warning: ignoring old commands for target `moc_WorkspaceTreeWidget.o'
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -g -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.10 -Wall -W -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../FUEditor -I. -I../../../../Qt5.9.4/5.9.4/clang_64/lib/QtQuick.framework/Headers -I../../../../Qt5.9.4/5.9.4/clang_64/lib/QtGui.framework/Headers -I../../../../Qt5.9.4/5.9.4/clang_64/lib/QtQml.framework/Headers -I../../../../Qt5.9.4/5.9.4/clang_64/lib/QtNetwork.framework/Headers -I../../../../Qt5.9.4/5.9.4/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/AGL.framework/Headers -I../../../../Qt5.9.4/5.9.4/clang_64/mkspecs/macx-clang -F/Users/lee/Qt5.9.4/5.9.4/clang_64/lib -o Camera.o ../FUEditor/algorithm/camera/Camera.cpp
    In file included from ../FUEditor/algorithm/camera/Camera.cpp:1:
    In file included from ../FUEditor/algorithm/camera/Camera.h:4:
    In file included from ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:18:
    In file included from ../FUEditor/algorithm/camera/../ldpMat/ldpdef.h:10:
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ext/hash_map:213:5: warning: Use of the header <ext/hash_map> is deprecated.  Migrate to <unordered_map> [-W#warnings]
    #   warning Use of the header <ext/hash_map> is deprecated.  Migrate to <unordered_map>
        ^
    In file included from ../FUEditor/algorithm/camera/Camera.cpp:1:
    In file included from ../FUEditor/algorithm/camera/Camera.h:4:
    In file included from ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:18:
    In file included from ../FUEditor/algorithm/camera/../ldpMat/ldpdef.h:11:
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ext/hash_set:205:5: warning: Use of the header <ext/hash_set> is deprecated.  Migrate to <unordered_set> [-W#warnings]
    #   warning Use of the header <ext/hash_set> is deprecated.  Migrate to <unordered_set>
        ^
    In file included from ../FUEditor/algorithm/camera/Camera.cpp:1:
    In file included from ../FUEditor/algorithm/camera/Camera.h:4:
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:169:2: error: expected a qualified name after 'typename'
            LDP_BASIC_MAT_ARITHMATIC(+)
            ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:134:11: note: expanded from macro 'LDP_BASIC_MAT_ARITHMATIC'
            typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> operator OP (const ldp_basic_mat<E,N,M>& rhs)const       \
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:170:2: error: expected a qualified name after 'typename'
            LDP_BASIC_MAT_ARITHMATIC(-)
            ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:134:11: note: expanded from macro 'LDP_BASIC_MAT_ARITHMATIC'
            typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> operator OP (const ldp_basic_mat<E,N,M>& rhs)const       \
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:212:11: error: expected a qualified name after 'typename'
            typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> pmul (const ldp_basic_mat<E,N,M>& rhs)const      
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:220:11: error: expected a qualified name after 'typename'
            typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> pdiv (const ldp_basic_mat<E,N,M>& rhs)const      
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:232:11: error: expected a qualified name after 'typename'
            typename ldp_basic_mat<typename type_promote<T,E>::type, N, K> operator * (const ldp_basic_mat<E,M,K>& rhs)const        
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:248:11: error: expected a qualified name after 'typename'
            typename ldp_basic_vec<typename type_promote<T,E>::type, N> operator * (const ldp_basic_vec<E,M>& rhs)const     
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:169:2: error: expected a qualified name after 'typename'
            LDP_BASIC_MAT_ARITHMATIC(+)
            ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:136:12: note: expanded from macro 'LDP_BASIC_MAT_ARITHMATIC'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> out;                                                                                             \
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:170:2: error: expected a qualified name after 'typename'
            LDP_BASIC_MAT_ARITHMATIC(-)
            ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:136:12: note: expanded from macro 'LDP_BASIC_MAT_ARITHMATIC'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> out;                                                                                             \
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:214:12: error: expected a qualified name after 'typename'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> out;                                                                                             
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:222:12: error: expected a qualified name after 'typename'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, N, M> out;                                                                                             
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:234:12: error: expected a qualified name after 'typename'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, N, K> out;                                                                                             
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:250:12: error: expected a qualified name after 'typename'
                    typename ldp_basic_vec<typename type_promote<T,E>::type, N> out;                                                                                                
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:310:3: error: use of undeclared identifier 'zeros'
                    zeros();
                    ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:334:3: error: use of undeclared identifier 'zeros'
                    zeros();
                    ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:597:11: error: expected a qualified name after 'typename'
            typename ldp_basic_mat<typename type_promote<T,E>::type, 2, K> operator * (const ldp_basic_mat<E,2,K>& rhs)const        
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:608:11: error: expected a qualified name after 'typename'
            typename ldp_basic_mat2<typename type_promote<T,E>::type> operator * (const ldp_basic_mat<E,2,2>& rhs)const     
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:619:11: error: expected a qualified name after 'typename'
            typename ldp_basic_vec2<typename type_promote<T,E>::type> operator * (const ldp_basic_vec<E,2>& rhs)const       
                     ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:599:12: error: expected a qualified name after 'typename'
                    typename ldp_basic_mat<typename type_promote<T,E>::type, 2, K> out;     
                             ^
    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:602:16: error: use of undeclared identifier '_data'
                            out(i, 0) = _data[0]*rhs(i,0) + _data[2]*rhs(i,1);
                                        ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    2 warnings and 20 errors generated.
    make: *** [Camera.o] Error 1
    21:41:33: The process "/usr/bin/make" exited with code 2.
    Error while building/deploying project FUEditor (kit: Desktop Qt 5.9.4 clang 64bit)
    When executing step "Make"
    21:41:34: Elapsed time: 00:01.
    

  • Lifetime Qt Champion

    @Princein said in when I transplant a Qt project from windows to Mac, what should I do?:

    ../FUEditor/algorithm/camera/../ldpMat/ldp_basic_mat.h:169:2: error: expected a qualified name after 'typename'
    LDP_BASIC_MAT_ARITHMATIC(+)

    You will need to show the code where this error is raised as I don't know what you're doing there.



  • try adding CONFIG += c++11 to your pro file, re-run qmake, clean and rebuild




  • Qt Champions 2017

    You have configuration file which works on the Windows platform. I see configurations like WIN32 , OpenGL32 etc.

    1. You are using the third party software e.g Algorithm or camera etc. First ensure this library or project works on the MAC platform.
    2. Ensure that you are able to create the Simple Qt project on MAC it works.
    3. When you move the project from Windows to MAC, remove all the *.pro.user(NOT PRO file), all *.obj, *.o,
    4. Remove all the win32 references in your configuration. How your software works on MAC(step#1) is very important.

    Please note that moving Qt project from Windows to MAC is very easy. Now you have another software(algorithm) even that has to moved here. This is where you are getting all the errors.



  • @dheerendra said in when I transplant a Qt project from windows to Mac, what should I do?:

    ow you have another software(alg

    Thank you very much,Your answer is very exciting, just like you said,now I focus to fix errors in Algorithm,but I must certain my .pro is correct to prevent waste much time,Here is my new .pro,can you help me check is it suit for Qt in Mac? Thanks a lot,you're nice man!

    .pro:

    TEMPLATE = app
    TARGET = ConnaGuit
    QT += core opengl widgets gui
    CONFIG += release
    DEFINES += QT_DLL QT_OPENGL_LIB QT_WIDGETS_LIB
    INCLUDEPATH += ./GeneratedFiles
    .
    ./GeneratedFiles/Release
    LIBS += -lopengl32
    -lglu32
    DEPENDPATH += .
    MOC_DIR += ./GeneratedFiles/release
    OBJECTS_DIR += release
    UI_DIR += ./GeneratedFiles
    RCC_DIR += ./GeneratedFiles
    include(ConnaGuit.pri)
    TRANSLATIONS+=cn.ts
    CONFIG += c++11


  • Qt Champions 2017

    @Princein said in when I transplant a Qt project from windows to Mac, what should I do?:

    -lglu32

    I see references of Windows dll like QT_DLL or openGL32 etc. Your project algorithm does it work MAC ? Did you confirm that ? Is it Qt project ?



  • @dheerendra said in when I transplant a Qt project from windows to Mac, what should I do?:

    openGL32 etc. Y

    Thanks for your reply, The algorithm is a library which writed by my colleague, the last .pro I showed you is in my Mac Qt project which transplanted from the windows Qt project,I want to confirm the .pro I showed you is suit for Qt in Mac, if not, should I change something in the .pro which I showed you in the last reply, very sorry for my English,thanks a lot.


  • Qt Champions 2017

    LIBS += -lopengl32 -lglu32

    Apart from these two rest is looks ok to me. You can use something like -lGLU -lglut on mac. You need to try.


Log in to reply