pdoria
6th June 2010, 14:55
Hi guys! :)
I'm back after a long time just to "bug" you with my problems with migration from qmake to cmake (namely from Kdev3 to Kdev4) ...
This is my CMakeLists.txt :
project(teltonika_tcp_server3_garmin_support)
cmake_minimum_required(VERSION 2.6)
find_package(Qt4 REQUIRED)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(teltonika_tcp_server3_garmin_support_SRCS crc_utils.cpp garmin_utils.cpp main.cpp server.cpp teltonikaunit.cpp)
set(teltonika_tcp_server3_garmin_support_MOC_HDRS crc16.h crc_utils.h garmin.h garmin_utils.h properties.h server.h teltonikaunit.h)
add_definitions(-DQT_THREAD_SUPPORT)
qt4_wrap_cpp(teltonika_tcp_server3_garmin_support ${teltonika_tcp_server3_garmin_support_MOC_HDRS})
#qt4_automoc(${teltonika_tcp_server3_garmin_suppor t_SRCS})
add_executable(teltonika_tcp_server3_garmin_suppor t ${teltonika_tcp_server3_garmin_support_SRCS})
target_link_libraries(teltonika_tcp_server3_garmin _support ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTSQL_LIBRARY})
On the linker phase I get this:
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x741): undefined reference to `vtable for Server'
main.cpp:(.text+0x922): undefined reference to `vtable for Server'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/server.cpp.o: In function `Server::Server(QObject*)':
server.cpp:(.text+0xab): undefined reference to `vtable for Server'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaThread::TeltonikaThread(int)':
teltonikaunit.cpp:(.text+0x9f4): undefined reference to `vtable for TeltonikaThread'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::~TeltonikaUnit()':
teltonikaunit.cpp:(.text+0xb2f8): undefined reference to `vtable for TeltonikaUnit'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::TeltonikaUnit(int)':
teltonikaunit.cpp:(.text+0xdd97): undefined reference to `vtable for TeltonikaUnit'
teltonikaunit.cpp:(.text+0xde2a): undefined reference to `TeltonikaUnit::error(QAbstractSocket::SocketError )'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::disconnected()':
teltonikaunit.cpp:(.text+0x9c8): undefined reference to `TeltonikaUnit::quit()'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::forceDisconnect()':
teltonikaunit.cpp:(.text+0xa95): undefined reference to `TeltonikaUnit::quit()'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::checkConnection()':
teltonikaunit.cpp:(.text+0x14a00): undefined reference to `TeltonikaUnit::quit()'
collect2: ld returned 1 exit status
Searching the project's tree I see that no .moc files are being created! :confused:
I assumed that this line
qt4_wrap_cpp(teltonika_tcp_server3_garmin_support ${teltonika_tcp_server3_garmin_support_MOC_HDRS})
would take care of business (as per much googling...) :confused:
I'm lost here and would really appreciate any help ;)
Best regards,
Pedro Doria Meunier
I'm back after a long time just to "bug" you with my problems with migration from qmake to cmake (namely from Kdev3 to Kdev4) ...
This is my CMakeLists.txt :
project(teltonika_tcp_server3_garmin_support)
cmake_minimum_required(VERSION 2.6)
find_package(Qt4 REQUIRED)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(teltonika_tcp_server3_garmin_support_SRCS crc_utils.cpp garmin_utils.cpp main.cpp server.cpp teltonikaunit.cpp)
set(teltonika_tcp_server3_garmin_support_MOC_HDRS crc16.h crc_utils.h garmin.h garmin_utils.h properties.h server.h teltonikaunit.h)
add_definitions(-DQT_THREAD_SUPPORT)
qt4_wrap_cpp(teltonika_tcp_server3_garmin_support ${teltonika_tcp_server3_garmin_support_MOC_HDRS})
#qt4_automoc(${teltonika_tcp_server3_garmin_suppor t_SRCS})
add_executable(teltonika_tcp_server3_garmin_suppor t ${teltonika_tcp_server3_garmin_support_SRCS})
target_link_libraries(teltonika_tcp_server3_garmin _support ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTSQL_LIBRARY})
On the linker phase I get this:
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x741): undefined reference to `vtable for Server'
main.cpp:(.text+0x922): undefined reference to `vtable for Server'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/server.cpp.o: In function `Server::Server(QObject*)':
server.cpp:(.text+0xab): undefined reference to `vtable for Server'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaThread::TeltonikaThread(int)':
teltonikaunit.cpp:(.text+0x9f4): undefined reference to `vtable for TeltonikaThread'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::~TeltonikaUnit()':
teltonikaunit.cpp:(.text+0xb2f8): undefined reference to `vtable for TeltonikaUnit'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::TeltonikaUnit(int)':
teltonikaunit.cpp:(.text+0xdd97): undefined reference to `vtable for TeltonikaUnit'
teltonikaunit.cpp:(.text+0xde2a): undefined reference to `TeltonikaUnit::error(QAbstractSocket::SocketError )'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::disconnected()':
teltonikaunit.cpp:(.text+0x9c8): undefined reference to `TeltonikaUnit::quit()'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::forceDisconnect()':
teltonikaunit.cpp:(.text+0xa95): undefined reference to `TeltonikaUnit::quit()'
CMakeFiles/teltonika_tcp_server3_garmin_support.dir/teltonikaunit.cpp.o: In function `TeltonikaUnit::checkConnection()':
teltonikaunit.cpp:(.text+0x14a00): undefined reference to `TeltonikaUnit::quit()'
collect2: ld returned 1 exit status
Searching the project's tree I see that no .moc files are being created! :confused:
I assumed that this line
qt4_wrap_cpp(teltonika_tcp_server3_garmin_support ${teltonika_tcp_server3_garmin_support_MOC_HDRS})
would take care of business (as per much googling...) :confused:
I'm lost here and would really appreciate any help ;)
Best regards,
Pedro Doria Meunier