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.jack...@bluequartz.net
BlueQuartz Software               Dayton, Ohio


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


----- Original Message ----- From: "John Drescher" <dresche...@gmail.com > To: "Oli Glaser" <o...@glasers.org>; "bacula-users" <bacula-us...@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 <o...@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 "
(?metaobj...@mainwindow@@UBEPBUQMetaObject@@XZ) mainwindow.obj hello
Error 2 error LNK2001: unresolved external symbol "public: virtual void *
__thiscall MainWindow::qt_metacast(char const *)"
(?qt_metac...@mainwindow@@uaepax...@z) mainwindow.obj hello
Error 3 error LNK2001: unresolved external symbol "public: virtual int __thiscall MainWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metac...@mainwindow@@uaehw4c...@qmetaobject@@hpa...@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

_______________________________________________
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

Reply via email to