Hello everybody,
I am trying to use NXT++ with Qt to control LEGO Mindstorms robot.
I’ve downloaded it here [github.com] .
Unfortunately it has been designed for Visual C++ so I tried to edit it for classic C++ (MinGW).
There are changes I did:
1) .pro file
# added HEADERS and SOURCES
SOURCES += main.cpp \
src/comm.cpp \
src/nxt++.cpp
HEADERS += include/comm.h \
include/NXT++.h \
include/visatype.h \
include/fantom/iFile.h \
include/fantom/iFileIterator.h \
include/fantom/iModule.h \
include/fantom/iModuleIterator.h \
include/fantom/iNXT.h \
include/fantom/iNXTIterator.h \
include/fantom/platform.h \
include/fantom/tStatus.h
# instead of #pragma comment (lib, "lib/fantom.lib" ) added
win32: LIBS += -L$$PWD/lib/ -lfantom
INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/include
win32: PRE_TARGETDEPS += $$PWD/lib/fantom.lib
# instead of #include "stdafx.h" in nxt++.cpp and comm.cpp
PRECOMPILED_HEADER += stdafx.h
2) platform.h (there are platform-related defines)
original
/*!
\file platform.h
\brief This file contains platform-related defines.
*/
/*
© Copyright 2005,
National Instruments Corporation.
All rights reserved.
File: platform.h
Originated: 23 June 2005
*/
#ifndef ___fantom_platform_h___
#define ___fantom_platform_h___
#ifndef __VISATYPE_HEADER__
#include "visatype.h"
#endif
#define nFANTOM100_kOSMacOSX 0
#define nFANTOM100_kOSWin32 0
#define nFANTOM100_kProcessorI386 0
#define nFANTOM100_kProcessorPPC 0
#define nFANTOM100_kCompilerMSVC 0
#define nFANTOM100_kCompilerApple 0
#if (( defined( __GNUG__ ) || defined( __GNUC__ )) && defined( __APPLE__ ))
#undef nFANTOM100_kOSMacOSX
#define nFANTOM100_kOSMacOSX 1
#undef nFANTOM100_kCompilerApple
#define nFANTOM100_kCompilerApple ( __GNUC__ * 10000 \
+ __GNUC_MINOR__ * 100 \
+ __GNUC_PATCHLEVEL__ )
#if ( defined( __ppc__ ))
#undef nFANTOM100_kProcessorPPC
#define nFANTOM100_kProcessorPPC 1
#define nFANTOM100_kBigEndian 1
#define nFANTOM100_kLittleEndian 0
#elif ( defined( __i386__ ))
#undef nFANTOM100_kProcessorI386
#define nFANTOM100_kProcessorI386 1
#define nFANTOM100_kBigEndian 0
#define nFANTOM100_kLittleEndian 1
#else
#error Unknown processor.
#endif
#ifdef nFANTOM100_kExportSymbols
#define nFANTOM100_kExport __attribute__ ((section ("__TEXT,__export")))
#else
#define nFANTOM100_kExport
#endif
#elif ( defined( _MSC_VER ) && ( defined( _M_IX86 ) || defined( _M_I86 )))
#undef nFANTOM100_kOSWin32
#define nFANTOM100_kOSWin32 1
#undef nFANTOM100_kCompilerMSVC
#define nFANTOM100_kCompilerMSVC _MSC_VER
#undef nFANTOM100_kProcessorI386
#define nFANTOM100_kProcessorI386 1
#ifdef nFANTOM100_kExportSymbols
#define nFANTOM100_kExport __declspec(dllexport)
#else
#define nFANTOM100_kExport __declspec(dllimport)
#endif
#define nFANTOM100_kBigEndian 0
#define nFANTOM100_kLittleEndian 1
#else
#error Unknown platform. // when i tried to compile, always ends here
#endif
#endif // ___fantom_platform_h___
edited
/*!
\file platform.h
\brief This file contains platform-related defines.
*/
/*
© Copyright 2005,
National Instruments Corporation.
All rights reserved.
File: platform.h
Originated: 23 June 2005
*/
#ifndef ___fantom_platform_h___
#define ___fantom_platform_h___
#ifndef __VISATYPE_HEADER__
#include "../visatype.h"
#endif
#define nFANTOM100_kOSMacOSX 0
#define nFANTOM100_kOSWin32 0
#define nFANTOM100_kProcessorI386 0
#define nFANTOM100_kProcessorPPC 0
#define nFANTOM100_kCompilerMSVC 0
#define nFANTOM100_kCompilerApple 0
#undef nFANTOM100_kOSWin32
#define nFANTOM100_kOSWin32 1
#undef nFANTOM100_kCompilerMSVC
#define nFANTOM100_kCompilerMSVC _MSC_VER
#undef nFANTOM100_kProcessorI386
#define nFANTOM100_kProcessorI386 1
#ifdef nFANTOM100_kExportSymbols
#define nFANTOM100_kExport __declspec(dllexport)
#else
#define nFANTOM100_kExport __declspec(dllimport)
#endif
#define nFANTOM100_kBigEndian 0
#define nFANTOM100_kLittleEndian 1
#endif // ___fantom_platform_h___
So what’s the problem?
And when I try to remove (from .pro file)
PRECOMPILED_HEADER += stdafx.h
↧