[CMake] QTCreator project to VS2008 problems

Michael Jackson mike.jackson at bluequartz.net
Fri Mar 19 09:27:47 EDT 2010


You may want to take a look at the following sample project:

http://www.cmake.org/Wiki/images/2/25/QtTest-Package-Example.zip

While the project was geared towards OS X specific topics the project  
will compile and run on any platform that Qt is supported on,  
Including MinGW and Visual Studio.

Also of some help may be:

http://www.cmake.org/Wiki/CMake#Tutorials

___________________________________________________________
Mike Jackson                      www.bluequartz.net
Principal Software Engineer       mike.jackson at bluequartz.net
BlueQuartz Software               Dayton, Ohio


On Mar 19, 2010, at 9:01 AM, Oli Glaser wrote:

>
> ----- Original Message ----- From: "John Drescher" <drescherjm at gmail.com 
> >
> To: "Oli Glaser" <oli at glasers.org>; "bacula-users" <Bacula-users at lists.sourceforge.net 
> >
> Sent: Friday, March 19, 2010 12:46 PM
> Subject: Re: [CMake] QTCreator project to VS2008 problems
>
>
> On Fri, Mar 19, 2010 at 5:58 AM, Oli Glaser <oli at glasers.org> wrote:
>> I am new to cmake and QT so I thought I'd build a test project  
>> (basic forms
>> app with two source files) in QTCreator and use CMake to port it to
>> VS2008 to test it out. I have tried to pick the commands I need for  
>> the
>> CMakefiles from the documentation. The cmake configure and generate  
>> went
>> okay, but when I tried to build in VS, I got linker errors so I  
>> added the
>> command to link the QT libraries (built with VS2008) and most of them
>> disappeared apart from 3, I'm not sure what it's looking for now -  
>> can
>> anyone help? here is my makefile and VS errors:
>>
>> project(hello)
>> IF(NOT UNIX AND NOT MINGW)
>> SET(MITK_WIN32_FORCE_STATIC "STATIC" CACHE INTERNAL "Use this  
>> variable to
>> always build static libraries on non-unix platforms")
>> ENDIF()
>> find_package(Qt4 4.5.2 COMPONENTS QtCore QtGui QtXml REQUIRED )
>> include(${QT_USE_FILE})
>> QT4_AUTOMOC(main.cpp mainwindow.cpp)
>> add_library(LIB main.cpp)
>> include_directories (${HELLO_SOURCE_DIR})
>> link_directories(${HELLO_SOURCE_DIR})
>> set(SRC main.cpp
>> mainwindow.cpp)
>> add_executable(hello ${SRC})
>> target_link_libraries(hello ${QT_LIBRARIES})
>>
>> VS Errors
>>
>> Error 1 error LNK2001: unresolved external symbol "public: virtual  
>> struct
>> QMetaObject const * __thiscall MainWindow::metaObject(void)const "
>> (?metaObject at MainWindow@@UBEPBUQMetaObject@@XZ) mainwindow.obj hello
>> Error 2 error LNK2001: unresolved external symbol "public: virtual  
>> void *
>> __thiscall MainWindow::qt_metacast(char const *)"
>> (?qt_metacast at MainWindow@@UAEPAXPBD at Z) mainwindow.obj hello
>> Error 3 error LNK2001: unresolved external symbol "public: virtual  
>> int
>> __thiscall MainWindow::qt_metacall(enum QMetaObject::Call,int,void  
>> * *)"
>> (?qt_metacall at MainWindow@@UAEHW4Call at QMetaObject@@HPAPAX at Z)  
>> mainwindow.obj hello
>>
>>
>
> To me this is a problem with what gets run with moc.I am using Qt and
> vs2008 every day so I can assure you that it works. Try adding the
> header file to the auto moc. You should have the header files in the
> source anyways.
>
> See here for an example:
>
> http://www.vtk.org/Wiki/VTK/Examples/Qt/RenderWindowUi
>
>
> John
>
> Hi John,
>
> Thanks for the reply - I added mainwindow.h to the automoc but I get  
> the same thing - I thought it might be the QMetaobject header or  
> library it was looking for, looking at the the error messages, but I  
> checked and the header is there, and the search paths are correct. I  
> built the QTProject with a mingw compiled version of QTCreator -  
> this wouldn't matter would it?
>
> Oli
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list