Qt, CMake 및 VS2010 컴파일러를 사용하고 있습니다. 작은 테스트 코드를 연결할 때 문제가있는 것 같습니다.Qt 프로그램이 연결되지 않았습니다. moc 파일이 생성되지 않았습니다.
이plotter.cpp.obj : error LNK2001: unresolved external symbol "public: virtual str
uct QMetaObject const * __thiscall Plotter::metaObject(void)const " (?metaObject
@[email protected]@[email protected]@XZ)...
(잠시 동안 계속)
가 오류가 나는 다음과 같은 코드에서 QObject를 상속려고 할 때 발생합니다 :
class Plotter : public QObject
{
Q_OBJECT
public:
링커는 다음과 같은 오류를 제공합니다 Q_OBJECT를 생략하면 프로그램이 링크되지만 런타임에 클래스 슬롯을 사용할 수 없습니다. plotter.h에 moc 파일이 생성되지 않은 것으로 나타났습니다. 이것은 내 CMakeLists.txt입니다 :
cmake_minimum_required (VERSION 2.6)
project (ms)
SET(CMAKE_BUILD_TYPE "Release")
FIND_PACKAGE(Qt4)
INCLUDE(${QT_USE_FILE})
ADD_DEFINITIONS(${QT_DEFINITIONS})
LINK_LIBRARIES(
${QT_LIBRARIES}
)
set(all_SOURCES plotter.cpp main.cpp dialog.cpp)
QT4_AUTOMOC(${all_SOURCES})
add_executable(ms ${all_SOURCES})
target_link_libraries(ms ${LINK_LIBRARIES})
MOC 파일이 dialog.cpp 생성,하지만 plotter.cpp을 위해, 어떻게 가능합니까?
감사합니다.
plotter.h 파일에서 수동으로 moc를 실행 해 보았습니다 - 구문 분석되지 않는 항목이 있는지 또는 cmake의 오류 인 경우 –
Qt는 훌륭한 IDE를 가지고 있습니다. + qmake를 사용 해본 적이 있습니까? –
파일은 어떻게 구성되어 있습니까? 헤더 파일에 모든 코드를 작성하고 있습니까? 그렇다면 moc_ 파일을 맨 아래에 포함시켜야합니다. –