[CMake] Fwd: Fwd: cmake link against Qt4's OpenGL
Michael Jackson
mike.jackson at bluequartz.net
Fri Sep 26 17:28:27 EDT 2008
use "make VERBOSE=1" and examine the link line. If you still have the
qmake project around compare the link lines between the 2 projects. I
have no idea. I have not used the QtOpenGL library before so this is
all new to me.
Mike
On Sep 26, 2008, at 5:24 PM, Linge Bai wrote:
> Yes, this program runs well when compile with qmake.
>
> Linge
>
>
> On Fri, Sep 26, 2008 at 5:18 PM, Michael Jackson <mike.jackson at bluequartz.net
> > wrote:
> Look in the GLWidget source file and see if there is actually a
> zRotationChanged(int) method available.
>
> Mike
>
>
> On Sep 26, 2008, at 5:15 PM, Linge Bai wrote:
>
>
>
> I set CMAKE_OSX_SYSROOT to /Developer/SDKs/MacOSX10.5.sdk and
> generated the makefile. The QTOPENGL and QGLWIDGET are still not
> found. But they do exist.
>
> I get these errors:
> make
>
> [ 33%] Building CXX object CMakeFiles/exe.dir/main.o
> [ 66%] Building CXX object CMakeFiles/exe.dir/glwidget.o
> [100%] Building CXX object CMakeFiles/exe.dir/window.o
> Linking CXX executable exe
> Undefined symbols:
> "GLWidget::zRotationChanged(int)", referenced from:
> GLWidget::setZRotation(int) in glwidget.o
> "GLWidget::xRotationChanged(int)", referenced from:
> GLWidget::setXRotation(int) in glwidget.o
> "GLWidget::yRotationChanged(int)", referenced from:
> GLWidget::setYRotation(int) in glwidget.o
> "vtable for Window", referenced from:
> __ZTV6Window$non_lazy_ptr in main.o
> __ZTV6Window$non_lazy_ptr in window.o
> "Window::staticMetaObject", referenced from:
> __ZN6Window16staticMetaObjectE$non_lazy_ptr in window.o
> "vtable for GLWidget", referenced from:
> __ZTV8GLWidget$non_lazy_ptr in glwidget.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [exe] Error 1
> make[1]: *** [CMakeFiles/exe.dir/all] Error 2
> make: *** [all] Error 2
>
>
> On Fri, Sep 26, 2008 at 4:59 PM, Michael Jackson <mike.jackson at bluequartz.net
> > wrote:
> Set the CMAKE_OSX_SYSROOT to /Developer/SDKs/MacOSX10.5.sdk
>
> and try again. Also, you do actually have the MacOSX10.5.sdk
> available correct?
>
> The link line contains all the proper OpenGL (both apple and Qt)
> frameworks. You just need to get past the SDK setting first.
>
> Mike
>
>
> On Sep 26, 2008, at 4:52 PM, Linge Bai wrote:
>
> Attached is a screen shot of running ccmake. It's MacOSX10.4u.sdk.
> And it showed that QTOPENGL and QGLWIDGET are not found.
>
> make VERBOSE=1
> /opt/local/bin/cmake -H/Users/lb353/Desktop/myQt/hellogl -B/Users/
> lb353/Desktop/myQt/hellogl --check-build-system CMakeFiles/
> Makefile.cmake 0
> /opt/local/bin/cmake -E cmake_progress_start /Users/lb353/Desktop/
> myQt/hellogl/CMakeFiles /Users/lb353/Desktop/myQt/hellogl/CMakeFiles/
> progress.make
> make -f CMakeFiles/Makefile2 all
> make -f CMakeFiles/exe.dir/build.make CMakeFiles/exe.dir/depend
> cd /Users/lb353/Desktop/myQt/hellogl && /opt/local/bin/cmake -E
> cmake_depends "Unix Makefiles" /Users/lb353/Desktop/myQt/hellogl /
> Users/lb353/Desktop/myQt/hellogl /Users/lb353/Desktop/myQt/hellogl /
> Users/lb353/Desktop/myQt/hellogl /Users/lb353/Desktop/myQt/hellogl/
> CMakeFiles/exe.dir/DependInfo.cmake --color=
> make -f CMakeFiles/exe.dir/build.make CMakeFiles/exe.dir/build
> /opt/local/bin/cmake -E cmake_progress_report /Users/lb353/Desktop/
> myQt/hellogl/CMakeFiles 1
> [ 33%] Building CXX object CMakeFiles/exe.dir/main.o
> /usr/bin/c++ -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -
> isysroot /Developer/SDKs/MacOSX10.4u.sdk -I/usr/local/Trolltech/
> Qt-4.4.2/include -I/usr/local/Trolltech/Qt-4.4.2/include/QtOpenGL -I/
> usr/local/Trolltech/Qt-4.4.2/include/QtGui -I/usr/local/Trolltech/
> Qt-4.4.2/include/QtCore -F/usr/local/Trolltech/Qt-4.4.2/lib -L/usr/
> local/Trolltech/Qt-4.4.2/lib -F/usr/local/Trolltech/Qt-4.4.2/lib -o
> CMakeFiles/exe.dir/main.o -c /Users/lb353/Desktop/myQt/hellogl/
> main.cpp
> /opt/local/bin/cmake -E cmake_progress_report /Users/lb353/Desktop/
> myQt/hellogl/CMakeFiles 2
> [ 66%] Building CXX object CMakeFiles/exe.dir/glwidget.o
> /usr/bin/c++ -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -
> isysroot /Developer/SDKs/MacOSX10.4u.sdk -I/usr/local/Trolltech/
> Qt-4.4.2/include -I/usr/local/Trolltech/Qt-4.4.2/include/QtOpenGL -I/
> usr/local/Trolltech/Qt-4.4.2/include/QtGui -I/usr/local/Trolltech/
> Qt-4.4.2/include/QtCore -F/usr/local/Trolltech/Qt-4.4.2/lib -L/usr/
> local/Trolltech/Qt-4.4.2/lib -F/usr/local/Trolltech/Qt-4.4.2/lib -o
> CMakeFiles/exe.dir/glwidget.o -c /Users/lb353/Desktop/myQt/hellogl/
> glwidget.cpp
> /opt/local/bin/cmake -E cmake_progress_report /Users/lb353/Desktop/
> myQt/hellogl/CMakeFiles 3
> [100%] Building CXX object CMakeFiles/exe.dir/window.o
> /usr/bin/c++ -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -
> isysroot /Developer/SDKs/MacOSX10.4u.sdk -I/usr/local/Trolltech/
> Qt-4.4.2/include -I/usr/local/Trolltech/Qt-4.4.2/include/QtOpenGL -I/
> usr/local/Trolltech/Qt-4.4.2/include/QtGui -I/usr/local/Trolltech/
> Qt-4.4.2/include/QtCore -F/usr/local/Trolltech/Qt-4.4.2/lib -L/usr/
> local/Trolltech/Qt-4.4.2/lib -F/usr/local/Trolltech/Qt-4.4.2/lib -o
> CMakeFiles/exe.dir/window.o -c /Users/lb353/Desktop/myQt/hellogl/
> window.cpp
> Linking CXX executable exe
> /opt/local/bin/cmake -E cmake_link_script CMakeFiles/exe.dir/
> link.txt --verbose=1
> /usr/bin/c++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -Wl,-
> search_paths_first -headerpad_max_install_names -fPIC CMakeFiles/
> exe.dir/main.o CMakeFiles/exe.dir/glwidget.o CMakeFiles/exe.dir/
> window.o -o exe -F/usr/local/Trolltech/Qt-4.4.2/lib -framework
> QtOpenGL -framework OpenGL -framework AGL -framework QtGui -
> framework Carbon -framework AppKit -framework QtCore /usr/lib/
> libz.dylib -framework ApplicationServices
> ld: library not found for -lcrt1.10.5.o
> collect2: ld returned 1 exit status
> make[2]: *** [exe] Error 1
> make[1]: *** [CMakeFiles/exe.dir/all] Error 2
> make: *** [all] Error 2
>
> Have I linked to QTOPENGL or not?
>
> Linge
>
> On Fri, Sep 26, 2008 at 4:43 PM, Michael Jackson <mike.jackson at bluequartz.net
> > wrote:
> run ccmake instead of cmake on your project. Look down the left hand
> side of cmake variables. It should be listed.
>
> By default it should be 10.5.sdk so I am not sure what is really
> going wrong.
>
> also, do the following:
>
> make clean
> make VERBOSE=1
>
> in your build directory and lets examine the compile and link lines..
>
>
> Mike
>
>
>
> On Sep 26, 2008, at 4:40 PM, Linge Bai wrote:
>
> my mac os x is 10.5.4, it's PPC. Xcode is version 3.1. I'm sorry
> that I have no idea how to check CMAKE_OSX_SYSROOT.
>
> Linge
>
> On Fri, Sep 26, 2008 at 4:33 PM, Michael Jackson <mike.jackson at bluequartz.net
> > wrote:
> What is your OS X version, (PPC or Intel), Xcode toolset version,
> and what are you setting the CMAKE_OSX_SYSROOT value to? It should
> be /Developer/SDKs/MacOSX10.5.sdk
>
>
> Mike
>
>
> On Sep 26, 2008, at 4:26 PM, Linge Bai wrote:
>
> so if I use cmake 2.6.1, with the following CMakeList.txt file:
>
> PROJECT ( COMBINED )
> FIND_PACKAGE (Qt4 REQUIRED)
> SET(QT_USE_QTOPENGL TRUE)
> INCLUDE( ${QT_USE_FILE} )
> ADD_EXECUTABLE(exe main.cpp glwidget.cpp window.cpp)
> TARGET_LINK_LIBRARIES(exe ${QT_LIBRARIES})
>
> I am able to link to Qt4's OpenGL, but I have a link error:
>
> make
> Scanning dependencies of target exe
> Linking CXX executable exe
> ld: library not found for -lcrt1.10.5.o
> collect2: ld returned 1 exit status
> make[2]: *** [exe] Error 1
> make[1]: *** [CMakeFiles/exe.dir/all] Error 2
> make: *** [all] Error 2
>
> I have no idea what this error means.
>
> Linge
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
> <Picture 2.png>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list