Test GUI build error on windows #68

Closed
opened 2019-08-28 15:03:15 -05:00 by gandomi · 29 comments
gandomi commented 2019-08-28 15:03:15 -05:00 (Migrated from github.com)

Hi!

I want to build the library with Test GUI using Cygwin on windows. But after adding --enable-testgui argument to ./configure and run make it gives me many undefined reference to ... errors. But without --enable-testgui argument the library is built successfully.
the whole make output command is as follow:

make  all-recursive
make[1]: Entering directory '/cygdrive/d/hidapi-master'
Making all in windows
make[2]: Entering directory '/cygdrive/d/hidapi-master/windows'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/d/hidapi-master/windows'
Making all in hidtest
make[2]: Entering directory '/cygdrive/d/hidapi-master/hidtest'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/d/hidapi-master/hidtest'
Making all in testgui
make[2]: Entering directory '/cygdrive/d/hidapi-master/testgui'
  CXXLD    hidapi-testgui.exe
test.o: In function `FX::FXMainWindow::FXMainWindow()':
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXMainWindow.h:46: undefined reference to `FX::FXTopWindow::FXTopWindow()'
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXMainWindow.h:46:(.text+0x27): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXTopWindow::FXTopWindow()'
test.o: In function `MainWindow::handle(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::search(unsigned int) const'
/cygdrive/d/hidapi-master/testgui/test.cpp:113:(.text+0x7f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXMetaClass::search(unsigned int) const'
test.o: In function `MainWindow::onClear(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0xf8): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0x10b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0x123): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::~FXString()'
test.o: In function `MainWindow::onConnect(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:230: undefined reference to `FX::FXList::getItem(int) const'
/cygdrive/d/hidapi-master/testgui/test.cpp:230:(.text+0x1e6): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXList::getItem(int) const'
/cygdrive/d/hidapi-master/testgui/test.cpp:246: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:246:(.text+0x247): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:249:(.text+0x24f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:250: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:250:(.text+0x268): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:251:(.text+0x280): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:251:(.text+0x293): additional relocation overflows omitted from the output
/cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:253: undefined reference to `FX::FXLabel::setText(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:240: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::onDisconnect(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXLabel::setText(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:277: undefined reference to `FX::FXApp::removeTimeout(FX::FXObject*, unsigned int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:287: undefined reference to `FX::FXList::clearItems(unsigned char)'
/cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:297: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:300: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:301: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
test.o: In function `FX::FXListItem::FXListItem(FX::FXString const&, FX::FXIcon*, void*)':
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXList.h:78: undefined reference to `FX::FXString::FXString(FX::FXString const&)'
test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:303: undefined reference to `FX::FXList::appendItem(FX::FXListItem*, unsigned char)'
/cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXList::appendItem(FX::FXString const&, FX::FXIcon*, void*, unsigned char)'
/cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::~FXString()'
test.o: In function `FX::FXListItem::FXListItem(FX::FXString const&, FX::FXIcon*, void*)':
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXList.h:78: undefined reference to `FX::FXObject::~FXObject()'
test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::create()':
/cygdrive/d/hidapi-master/testgui/test.cpp:207: undefined reference to `FX::FXMainWindow::create()'
/cygdrive/d/hidapi-master/testgui/test.cpp:217: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)'
test.o: In function `MainWindow::onTimeout(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:503: undefined reference to `FX::FXText::setBottomLine(int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:506: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:487: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:495: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:490: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:491: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:493: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:497: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:499: undefined reference to `FX::FXText::setBottomLine(int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::MainWindow(FX::FXApp*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXMainWindow::FXMainWindow(FX::FXApp*, FX::FXString const&, FX::FXIcon*, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:121: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXFont::FXFont(FX::FXApp*, FX::FXString const&, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:125: undefined reference to `FX::FXLabel::setFont(FX::FXFont*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:127: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:128: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:127: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:129: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:133: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:129: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:134: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:136: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:134: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:137: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:141: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:137: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:145: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:147: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:147: undefined reference to `FX::FXList::FXList(FX::FXComposite*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:148: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:153: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:157: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXGroupBox::FXGroupBox(FX::FXComposite*, FX::FXString const&, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:161: undefined reference to `FX::FXMatrix::FXMatrix(FX::FXComposite*, int, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:167: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXTextField::setText(FX::FXString const&, unsigned char)'
/cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:169: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:175: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:176: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:180: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:181: undefined reference to `FX::FXWindow::FXWindow(FX::FXComposite*, unsigned int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXGroupBox::FXGroupBox(FX::FXComposite*, FX::FXString const&, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:188: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:189: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:189: undefined reference to `FX::FXText::FXText(FX::FXComposite*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:190: undefined reference to `FX::FXText::setEditable(unsigned char)'
/cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXMainWindow::~FXMainWindow()'
test.o: In function `FX::FXTextField::getText() const':
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXTextField.h:257: undefined reference to `FX::FXString::FXString(FX::FXString const&)'
test.o: In function `MainWindow::getDataFromTextField(FX::FXTextField*, char*, unsigned long)':
/cygdrive/d/hidapi-master/testgui/test.cpp:321: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::onGetFeatureReport(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:444: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:454: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:462: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:457: undefined reference to `FX::FXString::format(char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:458: undefined reference to `FX::FXString::operator+=(FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:460: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:464: undefined reference to `FX::FXString::operator+=(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:466: undefined reference to `FX::FXText::setBottomLine(int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:449: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::~FXString()'
test.o: In function `FX::FXTextField::getText() const':
/cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXTextField.h:257: undefined reference to `FX::FXString::FXString(FX::FXString const&)'
test.o: In function `MainWindow::getLengthFromTextField(FX::FXTextField*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:352: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:360: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:352: undefined reference to `FX::FXString::~FXString()'
test.o: In function `MainWindow::onSendOutputReport(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:389: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:397: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:384: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
test.o: In function `MainWindow::onSendFeatureReport(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:420: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
/cygdrive/d/hidapi-master/testgui/test.cpp:428: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)'
test.o:/cygdrive/d/hidapi-master/testgui/test.cpp:415: more undefined references to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' follow
test.o: In function `MainWindow::handle(FX::FXObject*, unsigned int, void*)':
/cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMainWindow::handle(FX::FXObject*, unsigned int, void*)'
test.o: In function `MainWindow::~MainWindow()':
/cygdrive/d/hidapi-master/testgui/test.cpp:196: undefined reference to `FX::FXMainWindow::~FXMainWindow()'
test.o: In function `__static_initialization_and_destruction_0':
/cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::FXMetaClass(char const*, FX::FXObject* (*)(), FX::FXMetaClass const*, void const*, unsigned int, unsigned int)'
/cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::~FXMetaClass()'
test.o: In function `main':
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::FXString(char const*)'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::FXApp(FX::FXString const&, FX::FXString const&)'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:527: undefined reference to `FX::FXApp::init(int&, char**, bool)'
/cygdrive/d/hidapi-master/testgui/test.cpp:529: undefined reference to `FX::FXApp::create()'
/cygdrive/d/hidapi-master/testgui/test.cpp:530: undefined reference to `FX::FXApp::run()'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::~FXApp()'
/cygdrive/d/hidapi-master/testgui/test.cpp:532: undefined reference to `FX::FXString::~FXString()'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::~FXApp()'
/cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x20): undefined reference to `FX::FXObject::onDefault(FX::FXObject*, unsigned int, void*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x28): undefined reference to `FX::FXObject::tryHandle(FX::FXObject*, unsigned int, void*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x30): undefined reference to `FX::FXTopWindow::save(FX::FXStream&) const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x38): undefined reference to `FX::FXTopWindow::load(FX::FXStream&)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x58): undefined reference to `FX::FXTopWindow::detach()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x60): undefined reference to `FX::FXTopWindow::destroy()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x68): undefined reference to `FX::FXWindow::GetDC() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x70): undefined reference to `FX::FXWindow::ReleaseDC(void*) const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x78): undefined reference to `FX::FXTopWindow::resize(int, int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x80): undefined reference to `FX::FXWindow::doesOverrideRedirect() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x88): undefined reference to `FX::FXTopWindow::GetClass() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x90): undefined reference to `FX::FXTopWindow::getDefaultWidth()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x98): undefined reference to `FX::FXTopWindow::getDefaultHeight()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xa0): undefined reference to `FX::FXWindow::getWidthForHeight(int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xa8): undefined reference to `FX::FXWindow::getHeightForWidth(int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xb0): undefined reference to `FX::FXWindow::canFocus() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xb8): undefined reference to `FX::FXTopWindow::setFocus()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xc0): undefined reference to `FX::FXTopWindow::killFocus()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xc8): undefined reference to `FX::FXWindow::changeFocus(FX::FXWindow*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xd0): undefined reference to `FX::FXWindow::setDefault(unsigned char)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xd8): undefined reference to `FX::FXWindow::enable()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xe0): undefined reference to `FX::FXWindow::disable()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xe8): undefined reference to `FX::FXWindow::attach(void*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xf0): undefined reference to `FX::FXWindow::setShape(FX::FXRegion const&)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xf8): undefined reference to `FX::FXWindow::setShape(FX::FXBitmap*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x100): undefined reference to `FX::FXWindow::setShape(FX::FXIcon*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x108): undefined reference to `FX::FXWindow::clearShape()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x110): undefined reference to `FX::FXTopWindow::raise()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x118): undefined reference to `FX::FXWindow::lower()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x120): undefined reference to `FX::FXTopWindow::move(int, int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x128): undefined reference to `FX::FXTopWindow::position(int, int, int, int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x130): undefined reference to `FX::FXShell::recalc()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x138): undefined reference to `FX::FXTopWindow::layout()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x140): undefined reference to `FX::FXWindow::reparent(FX::FXWindow*, FX::FXWindow*)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x148): undefined reference to `FX::FXTopWindow::show()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x150): undefined reference to `FX::FXTopWindow::hide()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x158): undefined reference to `FX::FXComposite::isComposite() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x160): undefined reference to `FX::FXWindow::dropEnable()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x168): undefined reference to `FX::FXWindow::dropDisable()'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x170): undefined reference to `FX::FXWindow::contains(int, int) const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x178): undefined reference to `FX::FXWindow::setBackColor(unsigned int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x180): undefined reference to `FX::FXWindow::doesSaveUnder() const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x188): undefined reference to `FX::FXWindow::tr(char const*, char const*) const'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x190): undefined reference to `FX::FXTopWindow::show(unsigned int)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x198): undefined reference to `FX::FXTopWindow::maximize(unsigned char)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1a0): undefined reference to `FX::FXTopWindow::minimize(unsigned char)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1a8): undefined reference to `FX::FXTopWindow::restore(unsigned char)'
test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1b0): undefined reference to `FX::FXTopWindow::close(unsigned char)'
test.o:test.cpp:(.rdata$.refptr._ZN2FX11FXMetaClassD1Ev[.refptr._ZN2FX11FXMetaClassD1Ev]+0x0): undefined reference to `FX::FXMetaClass::~FXMetaClass()'
test.o:test.cpp:(.rdata$.refptr._ZN2FX12FXMainWindow9metaClassE[.refptr._ZN2FX12FXMainWindow9metaClassE]+0x0): undefined reference to `FX::FXMainWindow::metaClass'
test.o:test.cpp:(.rdata$.refptr._ZTVN2FX10FXListItemE[.refptr._ZTVN2FX10FXListItemE]+0x0): undefined reference to `vtable for FX::FXListItem'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:502: hidapi-testgui.exe] Error 1
make[2]: Leaving directory '/cygdrive/d/hidapi-master/testgui'
make[1]: *** [Makefile:556: all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/d/hidapi-master'
make: *** [Makefile:440: all] Error 2

Am I wrong somewhere?

Hi! I want to build the library with Test GUI using Cygwin on windows. But after adding `--enable-testgui` argument to `./configure` and run `make` it gives me many `undefined reference to ...` errors. But without `--enable-testgui` argument the library is built successfully. the whole `make` output command is as follow: ``` make all-recursive make[1]: Entering directory '/cygdrive/d/hidapi-master' Making all in windows make[2]: Entering directory '/cygdrive/d/hidapi-master/windows' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/cygdrive/d/hidapi-master/windows' Making all in hidtest make[2]: Entering directory '/cygdrive/d/hidapi-master/hidtest' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/cygdrive/d/hidapi-master/hidtest' Making all in testgui make[2]: Entering directory '/cygdrive/d/hidapi-master/testgui' CXXLD hidapi-testgui.exe test.o: In function `FX::FXMainWindow::FXMainWindow()': /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXMainWindow.h:46: undefined reference to `FX::FXTopWindow::FXTopWindow()' /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXMainWindow.h:46:(.text+0x27): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXTopWindow::FXTopWindow()' test.o: In function `MainWindow::handle(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::search(unsigned int) const' /cygdrive/d/hidapi-master/testgui/test.cpp:113:(.text+0x7f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXMetaClass::search(unsigned int) const' test.o: In function `MainWindow::onClear(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0xf8): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0x10b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:475: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:475:(.text+0x123): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::~FXString()' test.o: In function `MainWindow::onConnect(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:230: undefined reference to `FX::FXList::getItem(int) const' /cygdrive/d/hidapi-master/testgui/test.cpp:230:(.text+0x1e6): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXList::getItem(int) const' /cygdrive/d/hidapi-master/testgui/test.cpp:246: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)' /cygdrive/d/hidapi-master/testgui/test.cpp:246:(.text+0x247): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)' /cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:249:(.text+0x24f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:250: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:250:(.text+0x268): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:251:(.text+0x280): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:251:(.text+0x293): additional relocation overflows omitted from the output /cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:251: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:253: undefined reference to `FX::FXLabel::setText(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:240: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:252: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:249: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:259: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::onDisconnect(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXLabel::setText(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:277: undefined reference to `FX::FXApp::removeTimeout(FX::FXObject*, unsigned int)' /cygdrive/d/hidapi-master/testgui/test.cpp:270: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:287: undefined reference to `FX::FXList::clearItems(unsigned char)' /cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:297: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:298: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::operator+(FX::FXString const&, wchar_t const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:300: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:301: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' test.o: In function `FX::FXListItem::FXListItem(FX::FXString const&, FX::FXIcon*, void*)': /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXList.h:78: undefined reference to `FX::FXString::FXString(FX::FXString const&)' test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:303: undefined reference to `FX::FXList::appendItem(FX::FXListItem*, unsigned char)' /cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXList::appendItem(FX::FXString const&, FX::FXIcon*, void*, unsigned char)' /cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:309: undefined reference to `FX::FXString::~FXString()' test.o: In function `FX::FXListItem::FXListItem(FX::FXString const&, FX::FXIcon*, void*)': /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXList.h:78: undefined reference to `FX::FXObject::~FXObject()' test.o: In function `MainWindow::onRescan(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:296: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:295: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:299: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::create()': /cygdrive/d/hidapi-master/testgui/test.cpp:207: undefined reference to `FX::FXMainWindow::create()' /cygdrive/d/hidapi-master/testgui/test.cpp:217: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)' test.o: In function `MainWindow::onTimeout(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:503: undefined reference to `FX::FXText::setBottomLine(int)' /cygdrive/d/hidapi-master/testgui/test.cpp:506: undefined reference to `FX::FXApp::addTimeout(FX::FXObject*, unsigned int, unsigned int, void*)' /cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:487: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:495: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:490: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:491: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:493: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:497: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:499: undefined reference to `FX::FXText::setBottomLine(int)' /cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:502: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:486: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:489: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::MainWindow(FX::FXApp*)': /cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXMainWindow::FXMainWindow(FX::FXApp*, FX::FXString const&, FX::FXIcon*, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:121: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:123: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXFont::FXFont(FX::FXApp*, FX::FXString const&, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)' /cygdrive/d/hidapi-master/testgui/test.cpp:124: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:125: undefined reference to `FX::FXLabel::setFont(FX::FXFont*)' /cygdrive/d/hidapi-master/testgui/test.cpp:127: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:128: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:127: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:129: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:133: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:129: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:134: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:136: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:134: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:137: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:141: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:137: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:142: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:145: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:147: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:147: undefined reference to `FX::FXList::FXList(FX::FXComposite*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:148: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:149: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:150: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:152: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:153: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:155: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:157: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXGroupBox::FXGroupBox(FX::FXComposite*, FX::FXString const&, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:160: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:161: undefined reference to `FX::FXMatrix::FXMatrix(FX::FXComposite*, int, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:162: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:163: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXLabel::FXLabel(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:164: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:167: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXTextField::setText(FX::FXString const&, unsigned char)' /cygdrive/d/hidapi-master/testgui/test.cpp:168: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:169: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:170: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:175: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:176: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:177: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:180: undefined reference to `FX::FXTextField::FXTextField(FX::FXComposite*, int, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:181: undefined reference to `FX::FXWindow::FXWindow(FX::FXComposite*, unsigned int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:182: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXGroupBox::FXGroupBox(FX::FXComposite*, FX::FXString const&, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:187: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:188: undefined reference to `FX::FXVerticalFrame::FXVerticalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:189: undefined reference to `FX::FXHorizontalFrame::FXHorizontalFrame(FX::FXComposite*, unsigned int, int, int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:189: undefined reference to `FX::FXText::FXText(FX::FXComposite*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:190: undefined reference to `FX::FXText::setEditable(unsigned char)' /cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXButton::FXButton(FX::FXComposite*, FX::FXString const&, FX::FXIcon*, FX::FXObject*, unsigned int, unsigned int, int, int, int, int, int, int, int, int)' /cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:191: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:116: undefined reference to `FX::FXMainWindow::~FXMainWindow()' test.o: In function `FX::FXTextField::getText() const': /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXTextField.h:257: undefined reference to `FX::FXString::FXString(FX::FXString const&)' test.o: In function `MainWindow::getDataFromTextField(FX::FXTextField*, char*, unsigned long)': /cygdrive/d/hidapi-master/testgui/test.cpp:321: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::onGetFeatureReport(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:444: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:454: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:462: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:457: undefined reference to `FX::FXString::format(char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:458: undefined reference to `FX::FXString::operator+=(FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:460: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:464: undefined reference to `FX::FXString::operator+=(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:466: undefined reference to `FX::FXText::setBottomLine(int)' /cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:449: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:456: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:453: undefined reference to `FX::FXString::~FXString()' test.o: In function `FX::FXTextField::getText() const': /cygdrive/d/hidapi-master/testgui/./../../hidapi-externals/fox/include/FXTextField.h:257: undefined reference to `FX::FXString::FXString(FX::FXString const&)' test.o: In function `MainWindow::getLengthFromTextField(FX::FXTextField*)': /cygdrive/d/hidapi-master/testgui/test.cpp:352: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:360: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:352: undefined reference to `FX::FXString::~FXString()' test.o: In function `MainWindow::onSendOutputReport(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:389: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:397: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:384: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' test.o: In function `MainWindow::onSendFeatureReport(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:420: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' /cygdrive/d/hidapi-master/testgui/test.cpp:428: undefined reference to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' test.o:/cygdrive/d/hidapi-master/testgui/test.cpp:415: more undefined references to `FX::FXMessageBox::error(FX::FXWindow*, unsigned int, char const*, char const*, ...)' follow test.o: In function `MainWindow::handle(FX::FXObject*, unsigned int, void*)': /cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMainWindow::handle(FX::FXObject*, unsigned int, void*)' test.o: In function `MainWindow::~MainWindow()': /cygdrive/d/hidapi-master/testgui/test.cpp:196: undefined reference to `FX::FXMainWindow::~FXMainWindow()' test.o: In function `__static_initialization_and_destruction_0': /cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::FXMetaClass(char const*, FX::FXObject* (*)(), FX::FXMetaClass const*, void const*, unsigned int, unsigned int)' /cygdrive/d/hidapi-master/testgui/test.cpp:113: undefined reference to `FX::FXMetaClass::~FXMetaClass()' test.o: In function `main': /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::FXString(char const*)' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::FXApp(FX::FXString const&, FX::FXString const&)' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:527: undefined reference to `FX::FXApp::init(int&, char**, bool)' /cygdrive/d/hidapi-master/testgui/test.cpp:529: undefined reference to `FX::FXApp::create()' /cygdrive/d/hidapi-master/testgui/test.cpp:530: undefined reference to `FX::FXApp::run()' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::~FXApp()' /cygdrive/d/hidapi-master/testgui/test.cpp:532: undefined reference to `FX::FXString::~FXString()' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXApp::~FXApp()' /cygdrive/d/hidapi-master/testgui/test.cpp:526: undefined reference to `FX::FXString::~FXString()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x20): undefined reference to `FX::FXObject::onDefault(FX::FXObject*, unsigned int, void*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x28): undefined reference to `FX::FXObject::tryHandle(FX::FXObject*, unsigned int, void*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x30): undefined reference to `FX::FXTopWindow::save(FX::FXStream&) const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x38): undefined reference to `FX::FXTopWindow::load(FX::FXStream&)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x58): undefined reference to `FX::FXTopWindow::detach()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x60): undefined reference to `FX::FXTopWindow::destroy()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x68): undefined reference to `FX::FXWindow::GetDC() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x70): undefined reference to `FX::FXWindow::ReleaseDC(void*) const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x78): undefined reference to `FX::FXTopWindow::resize(int, int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x80): undefined reference to `FX::FXWindow::doesOverrideRedirect() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x88): undefined reference to `FX::FXTopWindow::GetClass() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x90): undefined reference to `FX::FXTopWindow::getDefaultWidth()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x98): undefined reference to `FX::FXTopWindow::getDefaultHeight()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xa0): undefined reference to `FX::FXWindow::getWidthForHeight(int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xa8): undefined reference to `FX::FXWindow::getHeightForWidth(int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xb0): undefined reference to `FX::FXWindow::canFocus() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xb8): undefined reference to `FX::FXTopWindow::setFocus()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xc0): undefined reference to `FX::FXTopWindow::killFocus()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xc8): undefined reference to `FX::FXWindow::changeFocus(FX::FXWindow*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xd0): undefined reference to `FX::FXWindow::setDefault(unsigned char)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xd8): undefined reference to `FX::FXWindow::enable()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xe0): undefined reference to `FX::FXWindow::disable()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xe8): undefined reference to `FX::FXWindow::attach(void*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xf0): undefined reference to `FX::FXWindow::setShape(FX::FXRegion const&)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0xf8): undefined reference to `FX::FXWindow::setShape(FX::FXBitmap*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x100): undefined reference to `FX::FXWindow::setShape(FX::FXIcon*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x108): undefined reference to `FX::FXWindow::clearShape()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x110): undefined reference to `FX::FXTopWindow::raise()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x118): undefined reference to `FX::FXWindow::lower()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x120): undefined reference to `FX::FXTopWindow::move(int, int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x128): undefined reference to `FX::FXTopWindow::position(int, int, int, int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x130): undefined reference to `FX::FXShell::recalc()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x138): undefined reference to `FX::FXTopWindow::layout()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x140): undefined reference to `FX::FXWindow::reparent(FX::FXWindow*, FX::FXWindow*)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x148): undefined reference to `FX::FXTopWindow::show()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x150): undefined reference to `FX::FXTopWindow::hide()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x158): undefined reference to `FX::FXComposite::isComposite() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x160): undefined reference to `FX::FXWindow::dropEnable()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x168): undefined reference to `FX::FXWindow::dropDisable()' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x170): undefined reference to `FX::FXWindow::contains(int, int) const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x178): undefined reference to `FX::FXWindow::setBackColor(unsigned int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x180): undefined reference to `FX::FXWindow::doesSaveUnder() const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x188): undefined reference to `FX::FXWindow::tr(char const*, char const*) const' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x190): undefined reference to `FX::FXTopWindow::show(unsigned int)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x198): undefined reference to `FX::FXTopWindow::maximize(unsigned char)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1a0): undefined reference to `FX::FXTopWindow::minimize(unsigned char)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1a8): undefined reference to `FX::FXTopWindow::restore(unsigned char)' test.o:test.cpp:(.rdata$_ZTV10MainWindow[_ZTV10MainWindow]+0x1b0): undefined reference to `FX::FXTopWindow::close(unsigned char)' test.o:test.cpp:(.rdata$.refptr._ZN2FX11FXMetaClassD1Ev[.refptr._ZN2FX11FXMetaClassD1Ev]+0x0): undefined reference to `FX::FXMetaClass::~FXMetaClass()' test.o:test.cpp:(.rdata$.refptr._ZN2FX12FXMainWindow9metaClassE[.refptr._ZN2FX12FXMainWindow9metaClassE]+0x0): undefined reference to `FX::FXMainWindow::metaClass' test.o:test.cpp:(.rdata$.refptr._ZTVN2FX10FXListItemE[.refptr._ZTVN2FX10FXListItemE]+0x0): undefined reference to `vtable for FX::FXListItem' collect2: error: ld returned 1 exit status make[2]: *** [Makefile:502: hidapi-testgui.exe] Error 1 make[2]: Leaving directory '/cygdrive/d/hidapi-master/testgui' make[1]: *** [Makefile:556: all-recursive] Error 1 make[1]: Leaving directory '/cygdrive/d/hidapi-master' make: *** [Makefile:440: all] Error 2 ``` Am I wrong somewhere?
Youw commented 2019-08-28 15:55:20 -05:00 (Migrated from github.com)

Do you have Fox toolkit installed locally?
See here: https://github.com/libusb/hidapi/blob/master/configure.ac#L187

Do you have Fox toolkit installed locally? See here: https://github.com/libusb/hidapi/blob/master/configure.ac#L187
gandomi commented 2019-08-28 23:35:34 -05:00 (Migrated from github.com)

Yes, I get the hidapi-externals.zip package from here and extract it just outside of hidapi. Now i have:

Parent_Folder
       |
       +hidapi-master
       +hidapi-externals
Yes, I get the `hidapi-externals.zip` package from [here](https://github.com/downloads/signal11/hidapi/hidapi-externals.zip) and extract it just outside of hidapi. Now i have: ``` Parent_Folder | +hidapi-master +hidapi-externals ```
Youw commented 2019-08-29 04:08:51 -05:00 (Migrated from github.com)

The error you have is a link time error.
Either libFOX-1.6.a not found or not accepted by linker.

Can you share configure and make -n output? Never mind.

The error you have is a link time error. Either `libFOX-1.6.a` not found or not accepted by linker. ~Can you share `configure` and `make -n` output?~ Never mind.
Youw commented 2019-08-29 08:04:30 -05:00 (Migrated from github.com)

Tried locally on my PC: it appears, that pre-build FOX Toolkit from here: https://github.com/downloads/signal11/hidapi/hidapi-externals.zip was build by a compiler that is incompatible with latest GCC from Cygwin.

Build FOX from sources using same compiler, replace header/binary at hidapi-external, and you should be good (tried that locally, it worked).

Please don't ask how to build FOX using Cygwin - this is a matter of a separate discussion and a bit off-topic (yes I had issues with it and don't have elegant solution for all of them).

Tried locally on my PC: it appears, that pre-build FOX Toolkit from here: https://github.com/downloads/signal11/hidapi/hidapi-externals.zip was build by a compiler that is incompatible with latest GCC from Cygwin. Build FOX from sources using same compiler, replace header/binary at hidapi-external, and you should be good (tried that locally, it worked). Please don't ask how to build FOX using Cygwin - this is a matter of a separate discussion and a bit off-topic (yes I had issues with it and don't have elegant solution for all of them).
gandomi commented 2019-08-30 02:52:55 -05:00 (Migrated from github.com)

I tried to build FOX with current installed Cygwin but it has some errors too. Ok I don't ask.
Thank you in advance for your help.

I tried to build FOX with current installed Cygwin but it has some errors too. Ok I don't ask. Thank you in advance for your help.
mcuee commented 2019-12-12 07:32:19 -06:00 (Migrated from github.com)

Not exactly the same but related. I tried to build the test gui under MSys 2 and it failed as well.

$ ./configure --enable-testgui
configure: loading site script /mingw64/etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-w64-mingw32
checking host system type... x86_64-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B
checking the name lister (/mingw64/bin/nm -B) interface... BSD nm
checking whether ln -s works... no, using cp -pR
checking the maximum length of command line arguments... 8192
checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32
checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32
checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for dlltool... dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw64/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for gcc... gcc
checking whether we are using the GNU Objective C compiler... yes
checking whether gcc accepts -g... yes
checking dependency style of gcc... gcc3
checking for pkg-config... /mingw64/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports nested variables... (cached) yes
checking operating system... x86_64-w64-mingw32
 (Windows back-end, using MinGW)
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating pc/hidapi.pc
config.status: creating Makefile
config.status: creating hidtest/Makefile
config.status: creating libusb/Makefile
config.status: creating linux/Makefile
config.status: creating mac/Makefile
config.status: creating testgui/Makefile
config.status: creating windows/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

$ make
make  all-recursive
make[1]: Entering directory '/c/work/hidapi/hidapi'
Making all in windows
make[2]: Entering directory '/c/work/hidapi/hidapi/windows'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/work/hidapi/hidapi/windows'
Making all in hidtest
make[2]: Entering directory '/c/work/hidapi/hidapi/hidtest'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/work/hidapi/hidapi/hidtest'
Making all in testgui
make[2]: Entering directory '/c/work/hidapi/hidapi/testgui'
  CXX      test.o
test.cpp:18:10: fatal error: fx.h: No such file or directory
   18 | #include <fx.h>
      |          ^~~~~~
compilation terminated.
make[2]: *** [Makefile:511: test.o] Error 1
make[2]: Leaving directory '/c/work/hidapi/hidapi/testgui'
make[1]: *** [Makefile:555: all-recursive] Error 1
make[1]: Leaving directory '/c/work/hidapi/hidapi'
make: *** [Makefile:439: all] Error 2

$ pacman -Ss fox
mingw32/mingw-w64-i686-fox 1.6.57-1 (mingw-w64-i686)
    C++ user interface toolkit (mingw-w64)
mingw64/mingw-w64-x86_64-fox 1.6.57-1 (mingw-w64-x86_64) [installed]
    C++ user interface toolkit (mingw-w64)

Not exactly the same but related. I tried to build the test gui under MSys 2 and it failed as well. ``` $ ./configure --enable-testgui configure: loading site script /mingw64/etc/config.site checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for style of include used by make... GNU checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.exe checking for suffix of executables... .exe checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for ar... ar checking the archiver (ar) interface... ar checking build system type... x86_64-w64-mingw32 checking host system type... x86_64-w64-mingw32 checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B checking the name lister (/mingw64/bin/nm -B) interface... BSD nm checking whether ln -s works... no, using cp -pR checking the maximum length of command line arguments... 8192 checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32 checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32 checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL checking for dlltool... dlltool checking how to associate runtime and link libraries... func_cygming_dll_for_implib checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /mingw64/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... no checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) gcc3 checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking for gcc... gcc checking whether we are using the GNU Objective C compiler... yes checking whether gcc accepts -g... yes checking dependency style of gcc... gcc3 checking for pkg-config... /mingw64/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking whether make supports nested variables... (cached) yes checking operating system... x86_64-w64-mingw32 (Windows back-end, using MinGW) checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating pc/hidapi.pc config.status: creating Makefile config.status: creating hidtest/Makefile config.status: creating libusb/Makefile config.status: creating linux/Makefile config.status: creating mac/Makefile config.status: creating testgui/Makefile config.status: creating windows/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands $ make make all-recursive make[1]: Entering directory '/c/work/hidapi/hidapi' Making all in windows make[2]: Entering directory '/c/work/hidapi/hidapi/windows' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/c/work/hidapi/hidapi/windows' Making all in hidtest make[2]: Entering directory '/c/work/hidapi/hidapi/hidtest' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/c/work/hidapi/hidapi/hidtest' Making all in testgui make[2]: Entering directory '/c/work/hidapi/hidapi/testgui' CXX test.o test.cpp:18:10: fatal error: fx.h: No such file or directory 18 | #include <fx.h> | ^~~~~~ compilation terminated. make[2]: *** [Makefile:511: test.o] Error 1 make[2]: Leaving directory '/c/work/hidapi/hidapi/testgui' make[1]: *** [Makefile:555: all-recursive] Error 1 make[1]: Leaving directory '/c/work/hidapi/hidapi' make: *** [Makefile:439: all] Error 2 $ pacman -Ss fox mingw32/mingw-w64-i686-fox 1.6.57-1 (mingw-w64-i686) C++ user interface toolkit (mingw-w64) mingw64/mingw-w64-x86_64-fox 1.6.57-1 (mingw-w64-x86_64) [installed] C++ user interface toolkit (mingw-w64) ```
mcuee commented 2019-12-12 07:34:13 -06:00 (Migrated from github.com)

The problem is that the fox library is hard coded. Probably it is better to change to use pkg-config.

The problem is that the fox library is hard coded. Probably it is better to change to use pkg-config.
mcuee commented 2019-12-12 07:40:24 -06:00 (Migrated from github.com)

Of course you can use the ./configure option to fix the issue, but it is probably better to use pkg-config.

Of course you can use the ./configure option to fix the issue, but it is probably better to use pkg-config.
mcuee commented 2021-06-11 04:41:48 -05:00 (Migrated from github.com)

Somehow pkg-config is actually correct. Need to check again.

$ pkg-config --cflags fox
-IC:/msys64/mingw64/include/fox-1.6

$ pkg-config --libs fox
-lFOX-1.6
Somehow pkg-config is actually correct. Need to check again. ``` $ pkg-config --cflags fox -IC:/msys64/mingw64/include/fox-1.6 $ pkg-config --libs fox -lFOX-1.6 ```
mcuee commented 2021-06-14 09:45:32 -05:00 (Migrated from github.com)

This one is tough.

$ ls /mingw64/include/fox-1.6/fx.h
/mingw64/include/fox-1.6/fx.h

$ ls /mingw64/lib/libFOX-1.6.*
/mingw64/lib/libFOX-1.6.a  /mingw64/lib/libFOX-1.6.dll.a

$ fox_CFLAGS="-I/mingw64/include/fox-1.6" fox_LIBS="-lFox-1.6" ./configure --enable-testgui
configure: loading site script /etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-w64-mingw32
checking host system type... x86_64-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B
checking the name lister (/mingw64/bin/nm -B) interface... BSD nm
checking whether ln -s works... no, using cp -pR
checking the maximum length of command line arguments... 8192
checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32
checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32
checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for dlltool... dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw64/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for gcc... gcc
checking whether the compiler supports GNU Objective C... yes
checking whether gcc accepts -g... yes
checking dependency style of gcc... gcc3
checking for pkg-config... /mingw64/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports nested variables... (cached) yes
checking operating system... x86_64-w64-mingw32
 (Windows back-end, using MinGW)
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating pc/hidapi.pc
config.status: creating Makefile
config.status: creating hidtest/Makefile
config.status: creating libusb/Makefile
config.status: creating linux/Makefile
config.status: creating mac/Makefile
config.status: creating testgui/Makefile
config.status: creating windows/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

$ make
make  all-recursive
make[1]: Entering directory '/c/work/hid/hidapi'
Making all in windows
make[2]: Entering directory '/c/work/hid/hidapi/windows'
  CC       hid.lo
hid.c: In function 'hid_enumerate':
hid.c:459:5: warning: 'strncpy' specified bound depends on the length of the source argument [-Wstringop-overflow=]
  459 |     strncpy(cur_dev->path, str, len+1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hid.c:457:11: note: length computed here
  457 |     len = strlen(str);
      |           ^~~~~~~~~~~
  CCLD     libhidapi.la
make[2]: Leaving directory '/c/work/hid/hidapi/windows'
Making all in hidtest
make[2]: Entering directory '/c/work/hid/hidapi/hidtest'
  CC       test.o
  CCLD     hidtest.exe
make[2]: Leaving directory '/c/work/hid/hidapi/hidtest'
Making all in testgui
make[2]: Entering directory '/c/work/hid/hidapi/testgui'
  CXX      test.o
test.cpp:18:10: fatal error: fx.h: No such file or directory
   18 | #include <fx.h>
      |          ^~~~~~
compilation terminated.
make[2]: *** [Makefile:520: test.o] Error 1
make[2]: Leaving directory '/c/work/hid/hidapi/testgui'
make[1]: *** [Makefile:560: all-recursive] Error 1
make[1]: Leaving directory '/c/work/hid/hidapi'
make: *** [Makefile:444: all] Error 2


This one is tough. ``` $ ls /mingw64/include/fox-1.6/fx.h /mingw64/include/fox-1.6/fx.h $ ls /mingw64/lib/libFOX-1.6.* /mingw64/lib/libFOX-1.6.a /mingw64/lib/libFOX-1.6.dll.a $ fox_CFLAGS="-I/mingw64/include/fox-1.6" fox_LIBS="-lFox-1.6" ./configure --enable-testgui configure: loading site script /etc/config.site checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports the include directive... yes (GNU style) checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.exe checking for suffix of executables... .exe checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for ar... ar checking the archiver (ar) interface... ar checking build system type... x86_64-w64-mingw32 checking host system type... x86_64-w64-mingw32 checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B checking the name lister (/mingw64/bin/nm -B) interface... BSD nm checking whether ln -s works... no, using cp -pR checking the maximum length of command line arguments... 8192 checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32 checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32 checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL checking for dlltool... dlltool checking how to associate runtime and link libraries... func_cygming_dll_for_implib checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /mingw64/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... no checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether the compiler supports GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to enable C11 features... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) gcc3 checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking for gcc... gcc checking whether the compiler supports GNU Objective C... yes checking whether gcc accepts -g... yes checking dependency style of gcc... gcc3 checking for pkg-config... /mingw64/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking whether make supports nested variables... (cached) yes checking operating system... x86_64-w64-mingw32 (Windows back-end, using MinGW) checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating pc/hidapi.pc config.status: creating Makefile config.status: creating hidtest/Makefile config.status: creating libusb/Makefile config.status: creating linux/Makefile config.status: creating mac/Makefile config.status: creating testgui/Makefile config.status: creating windows/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands $ make make all-recursive make[1]: Entering directory '/c/work/hid/hidapi' Making all in windows make[2]: Entering directory '/c/work/hid/hidapi/windows' CC hid.lo hid.c: In function 'hid_enumerate': hid.c:459:5: warning: 'strncpy' specified bound depends on the length of the source argument [-Wstringop-overflow=] 459 | strncpy(cur_dev->path, str, len+1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ hid.c:457:11: note: length computed here 457 | len = strlen(str); | ^~~~~~~~~~~ CCLD libhidapi.la make[2]: Leaving directory '/c/work/hid/hidapi/windows' Making all in hidtest make[2]: Entering directory '/c/work/hid/hidapi/hidtest' CC test.o CCLD hidtest.exe make[2]: Leaving directory '/c/work/hid/hidapi/hidtest' Making all in testgui make[2]: Entering directory '/c/work/hid/hidapi/testgui' CXX test.o test.cpp:18:10: fatal error: fx.h: No such file or directory 18 | #include <fx.h> | ^~~~~~ compilation terminated. make[2]: *** [Makefile:520: test.o] Error 1 make[2]: Leaving directory '/c/work/hid/hidapi/testgui' make[1]: *** [Makefile:560: all-recursive] Error 1 make[1]: Leaving directory '/c/work/hid/hidapi' make: *** [Makefile:444: all] Error 2 ```
mcuee commented 2021-08-26 01:44:47 -05:00 (Migrated from github.com)

I have tried to build Fox with VS2019 (with a few fixes) and it was okay. But then Building the TestGUI still failed.

Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol "public: static class FX::FXMetaClass const FX::FXListItem::metaClass" (?metaClass@FXListItem@FX@@2VFXMetaClass@2@B) testgui C:\work\hid\hidapi\testgui\test.obj 1

I have tried to build Fox with VS2019 (with a few fixes) and it was okay. But then Building the TestGUI still failed. Severity Code Description Project File Line Suppression State Error LNK2001 unresolved external symbol "public: static class FX::FXMetaClass const FX::FXListItem::metaClass" (?metaClass@FXListItem@FX@@2VFXMetaClass@2@B) testgui C:\work\hid\hidapi\testgui\test.obj 1
mcuee commented 2021-08-26 02:10:47 -05:00 (Migrated from github.com)

Full building error message with Fox 1.7.77 release, using FOXDLL-1.7.lib (dynamic link)

Build started...
1>------ Build started: Project: testgui, Configuration: Release Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\work\hid\hidapi\testgui\Release\testgui.exe) does not match the Linker's OutputFile property value (C:\work\hid\hidapi\testgui\testgui.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1>   Creating library C:\work\hid\hidapi\testgui\Release\testgui.lib and object C:\work\hid\hidapi\testgui\Release\testgui.exp
1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXObject::metaClass" (?metaClass@FXObject@FX@@2VFXMetaClass@2@B)
1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXListItem::metaClass" (?metaClass@FXListItem@FX@@2VFXMetaClass@2@B)
1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXMainWindow::metaClass" (?metaClass@FXMainWindow@FX@@2VFXMetaClass@2@B)
1>testgui.exe : fatal error LNK1120: 3 unresolved externals
1>Done building project "testgui.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Full building error message with Fox 1.7.77 release, using FOXDLL-1.7.lib (dynamic link) ``` Build started... 1>------ Build started: Project: testgui, Configuration: Release Win32 ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\work\hid\hidapi\testgui\Release\testgui.exe) does not match the Linker's OutputFile property value (C:\work\hid\hidapi\testgui\testgui.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 1> Creating library C:\work\hid\hidapi\testgui\Release\testgui.lib and object C:\work\hid\hidapi\testgui\Release\testgui.exp 1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXObject::metaClass" (?metaClass@FXObject@FX@@2VFXMetaClass@2@B) 1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXListItem::metaClass" (?metaClass@FXListItem@FX@@2VFXMetaClass@2@B) 1>test.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXMainWindow::metaClass" (?metaClass@FXMainWindow@FX@@2VFXMetaClass@2@B) 1>testgui.exe : fatal error LNK1120: 3 unresolved externals 1>Done building project "testgui.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== ```
mcuee commented 2021-08-26 02:13:51 -05:00 (Migrated from github.com)

Fox 1.7.77 Win32 build with VS2019 with modified FXAtomic.cpp file (included in the zip file)
hidapi-externals.zip

Ref on the fix of FOX source code FXAtomic.cpp file: https://github.com/catid/libcat/issues/4

Fox 1.7.77 Win32 build with VS2019 with modified FXAtomic.cpp file (included in the zip file) [hidapi-externals.zip](https://github.com/libusb/hidapi/files/7052326/hidapi-externals.zip) Ref on the fix of FOX source code FXAtomic.cpp file: https://github.com/catid/libcat/issues/4
mcuee commented 2021-08-26 03:00:23 -05:00 (Migrated from github.com)

Finally got successful with MSYS2 MinGW64 distro. I need to copy the fox development files to hidapi-externals directory in order for the build to be successful.


XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi
$ ./configure --enable-testgui
configure: loading site script /etc/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-w64-mingw32
checking host system type... x86_64-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B
checking the name lister (/mingw64/bin/nm -B) interface... BSD nm
checking whether ln -s works... no, using cp -pR
checking the maximum length of command line arguments... 8192
checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32
checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32
checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for dlltool... dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw64/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe
checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for gcc... gcc
checking whether the compiler supports GNU Objective C... yes
checking whether gcc accepts -g... yes
checking dependency style of gcc... gcc3
checking for pkg-config... /mingw64/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports nested variables... (cached) yes
checking operating system... x86_64-w64-mingw32
 (Windows back-end, using MinGW)
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating pc/hidapi.pc
config.status: creating Makefile
config.status: creating hidtest/Makefile
config.status: creating libusb/Makefile
config.status: creating linux/Makefile
config.status: creating mac/Makefile
config.status: creating testgui/Makefile
config.status: creating windows/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi
$ make
make  all-recursive
make[1]: Entering directory '/c/work/hid/hidapi'
Making all in windows
make[2]: Entering directory '/c/work/hid/hidapi/windows'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/work/hid/hidapi/windows'
Making all in hidtest
make[2]: Entering directory '/c/work/hid/hidapi/hidtest'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/work/hid/hidapi/hidtest'
Making all in testgui
make[2]: Entering directory '/c/work/hid/hidapi/testgui'
  CXX      test.o
  CXXLD    hidapi-testgui.exe
make[2]: Leaving directory '/c/work/hid/hidapi/testgui'
make[2]: Entering directory '/c/work/hid/hidapi'
make[2]: Leaving directory '/c/work/hid/hidapi'
make[1]: Leaving directory '/c/work/hid/hidapi'

XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi
$ make install
Making install in windows
make[1]: Entering directory '/c/work/hid/hidapi/windows'
make[2]: Entering directory '/c/work/hid/hidapi/windows'
 /usr/bin/mkdir -p '/mingw64/lib'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libhidapi.la '/mingw64/lib'
libtool: install: /usr/bin/install -c .libs/libhidapi.lai /mingw64/lib/libhidapi.la
libtool: install: /usr/bin/install -c .libs/libhidapi.a /mingw64/lib/libhidapi.a
libtool: install: chmod 644 /mingw64/lib/libhidapi.a
libtool: install: ranlib /mingw64/lib/libhidapi.a
 /usr/bin/mkdir -p '/mingw64/include/hidapi'
 /usr/bin/install -c -m 644 ../hidapi/hidapi.h '/mingw64/include/hidapi'
make[2]: Leaving directory '/c/work/hid/hidapi/windows'
make[1]: Leaving directory '/c/work/hid/hidapi/windows'
Making install in hidtest
make[1]: Entering directory '/c/work/hid/hidapi/hidtest'
make[2]: Entering directory '/c/work/hid/hidapi/hidtest'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/c/work/hid/hidapi/hidtest'
make[1]: Leaving directory '/c/work/hid/hidapi/hidtest'
Making install in testgui
make[1]: Entering directory '/c/work/hid/hidapi/testgui'
make[2]: Entering directory '/c/work/hid/hidapi/testgui'
 /usr/bin/mkdir -p '/mingw64/bin'
  /bin/sh ../libtool   --mode=install /usr/bin/install -c hidapi-testgui.exe '/mingw64/bin'
libtool: install: /usr/bin/install -c .libs/hidapi-testgui.exe /mingw64/bin/hidapi-testgui.exe
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/c/work/hid/hidapi/testgui'
make[1]: Leaving directory '/c/work/hid/hidapi/testgui'
make[1]: Entering directory '/c/work/hid/hidapi'
make[2]: Entering directory '/c/work/hid/hidapi'
make[2]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/mingw64/share/doc/hidapi'
 /usr/bin/install -c -m 644 README.md AUTHORS.txt LICENSE-bsd.txt LICENSE-gpl3.txt LICENSE-orig.txt LICENSE.txt '/mingw64/share/doc/hidapi'
 /usr/bin/mkdir -p '/mingw64/lib/pkgconfig'
 /usr/bin/install -c -m 644 pc/hidapi.pc '/mingw64/lib/pkgconfig'
make[2]: Leaving directory '/c/work/hid/hidapi'
make[1]: Leaving directory '/c/work/hid/hidapi'
Finally got successful with MSYS2 MinGW64 distro. I need to copy the fox development files to hidapi-externals directory in order for the build to be successful. ``` XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi $ ./configure --enable-testgui configure: loading site script /etc/config.site checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports the include directive... yes (GNU style) checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.exe checking for suffix of executables... .exe checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for ar... ar checking the archiver (ar) interface... ar checking build system type... x86_64-w64-mingw32 checking host system type... x86_64-w64-mingw32 checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /mingw64/bin/nm -B checking the name lister (/mingw64/bin/nm -B) interface... BSD nm checking whether ln -s works... no, using cp -pR checking the maximum length of command line arguments... 8192 checking how to convert x86_64-w64-mingw32 file names to x86_64-w64-mingw32 format... func_convert_file_msys_to_w32 checking how to convert x86_64-w64-mingw32 file names to toolchain format... func_convert_file_msys_to_w32 checking for C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL checking for dlltool... dlltool checking how to associate runtime and link libraries... func_cygming_dll_for_implib checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /mingw64/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for dlfcn.h... no checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether the compiler supports GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to enable C11 features... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) gcc3 checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe checking if the linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) is GNU ld... yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (C:/msys64/mingw64/x86_64-w64-mingw32/bin/ld.exe) supports shared libraries... yes checking dynamic linker characteristics... Win32 ld.exe checking how to hardcode library paths into programs... immediate checking for gcc... gcc checking whether the compiler supports GNU Objective C... yes checking whether gcc accepts -g... yes checking dependency style of gcc... gcc3 checking for pkg-config... /mingw64/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking whether make supports nested variables... (cached) yes checking operating system... x86_64-w64-mingw32 (Windows back-end, using MinGW) checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating pc/hidapi.pc config.status: creating Makefile config.status: creating hidtest/Makefile config.status: creating libusb/Makefile config.status: creating linux/Makefile config.status: creating mac/Makefile config.status: creating testgui/Makefile config.status: creating windows/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi $ make make all-recursive make[1]: Entering directory '/c/work/hid/hidapi' Making all in windows make[2]: Entering directory '/c/work/hid/hidapi/windows' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/c/work/hid/hidapi/windows' Making all in hidtest make[2]: Entering directory '/c/work/hid/hidapi/hidtest' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/c/work/hid/hidapi/hidtest' Making all in testgui make[2]: Entering directory '/c/work/hid/hidapi/testgui' CXX test.o CXXLD hidapi-testgui.exe make[2]: Leaving directory '/c/work/hid/hidapi/testgui' make[2]: Entering directory '/c/work/hid/hidapi' make[2]: Leaving directory '/c/work/hid/hidapi' make[1]: Leaving directory '/c/work/hid/hidapi' XFCHEN@1TV4433 MINGW64 /c/work/hid/hidapi $ make install Making install in windows make[1]: Entering directory '/c/work/hid/hidapi/windows' make[2]: Entering directory '/c/work/hid/hidapi/windows' /usr/bin/mkdir -p '/mingw64/lib' /bin/sh ../libtool --mode=install /usr/bin/install -c libhidapi.la '/mingw64/lib' libtool: install: /usr/bin/install -c .libs/libhidapi.lai /mingw64/lib/libhidapi.la libtool: install: /usr/bin/install -c .libs/libhidapi.a /mingw64/lib/libhidapi.a libtool: install: chmod 644 /mingw64/lib/libhidapi.a libtool: install: ranlib /mingw64/lib/libhidapi.a /usr/bin/mkdir -p '/mingw64/include/hidapi' /usr/bin/install -c -m 644 ../hidapi/hidapi.h '/mingw64/include/hidapi' make[2]: Leaving directory '/c/work/hid/hidapi/windows' make[1]: Leaving directory '/c/work/hid/hidapi/windows' Making install in hidtest make[1]: Entering directory '/c/work/hid/hidapi/hidtest' make[2]: Entering directory '/c/work/hid/hidapi/hidtest' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/c/work/hid/hidapi/hidtest' make[1]: Leaving directory '/c/work/hid/hidapi/hidtest' Making install in testgui make[1]: Entering directory '/c/work/hid/hidapi/testgui' make[2]: Entering directory '/c/work/hid/hidapi/testgui' /usr/bin/mkdir -p '/mingw64/bin' /bin/sh ../libtool --mode=install /usr/bin/install -c hidapi-testgui.exe '/mingw64/bin' libtool: install: /usr/bin/install -c .libs/hidapi-testgui.exe /mingw64/bin/hidapi-testgui.exe make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/c/work/hid/hidapi/testgui' make[1]: Leaving directory '/c/work/hid/hidapi/testgui' make[1]: Entering directory '/c/work/hid/hidapi' make[2]: Entering directory '/c/work/hid/hidapi' make[2]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/mingw64/share/doc/hidapi' /usr/bin/install -c -m 644 README.md AUTHORS.txt LICENSE-bsd.txt LICENSE-gpl3.txt LICENSE-orig.txt LICENSE.txt '/mingw64/share/doc/hidapi' /usr/bin/mkdir -p '/mingw64/lib/pkgconfig' /usr/bin/install -c -m 644 pc/hidapi.pc '/mingw64/lib/pkgconfig' make[2]: Leaving directory '/c/work/hid/hidapi' make[1]: Leaving directory '/c/work/hid/hidapi' ```
mcuee commented 2021-08-26 03:16:56 -05:00 (Migrated from github.com)

Fox development files packaged from MSYS2 MinGW64 (64bit)
hidapi-externals.zip

Fox development files packaged from MSYS2 MinGW64 (64bit) [hidapi-externals.zip](https://github.com/libusb/hidapi/files/7052914/hidapi-externals.zip)
mcuee commented 2021-08-26 03:19:10 -05:00 (Migrated from github.com)

64bit MSYS2 MinGW64 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085a, as well as the above Fox development files.
hidapi_mingw64_bin_snapshot.zip

64bit MSYS2 MinGW64 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085ac6e6a5be6f0f29a42a4e739da30881, as well as the above Fox development files. [hidapi_mingw64_bin_snapshot.zip](https://github.com/libusb/hidapi/files/7053161/hidapi_mingw64_bin_snapshot.zip)
mcuee commented 2021-08-26 03:21:22 -05:00 (Migrated from github.com)

Take note the above hidapi-testgui.exe is statically linked to hidapi and fox library.

Tested with Microchip HID Simple Demo and it works fine.

Take note the above hidapi-testgui.exe is statically linked to hidapi and fox library. Tested with Microchip HID Simple Demo and it works fine.
mcuee commented 2021-08-26 03:31:15 -05:00 (Migrated from github.com)

I will still keep this issue open since I can not get VS2019 working. But probably someone else will figure out the issue.

I will still keep this issue open since I can not get VS2019 working. But probably someone else will figure out the issue.
mcuee commented 2021-08-26 04:35:28 -05:00 (Migrated from github.com)

Still for most of the users, I will recommend this command line tool.
https://github.com/todbot/hidapitester

Still for most of the users, I will recommend this command line tool. https://github.com/todbot/hidapitester
mcuee commented 2021-08-26 04:40:02 -05:00 (Migrated from github.com)

For those who need a GUI, you can try the following. Windows binary is included. But it does not seem to work very well based on my testing.
https://github.com/todbot/hidpytoy

For those who need a GUI, you can try the following. Windows binary is included. But it does not seem to work very well based on my testing. https://github.com/todbot/hidpytoy
mcuee commented 2021-08-26 08:25:31 -05:00 (Migrated from github.com)

Fox development files packaged from MSYS2 MinGW32 (32bit)
hidapi-externals_mingw32.zip

Fox development files packaged from MSYS2 MinGW32 (32bit) [hidapi-externals_mingw32.zip](https://github.com/libusb/hidapi/files/7060078/hidapi-externals_mingw32.zip)
mcuee commented 2021-08-26 08:32:47 -05:00 (Migrated from github.com)

32bit MSYS2 MinGW32 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085a, as well as the above Fox development files.
hidapi_mingw32_bin_snapshot.zip

32bit MSYS2 MinGW32 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085ac6e6a5be6f0f29a42a4e739da30881, as well as the above Fox development files. [hidapi_mingw32_bin_snapshot.zip](https://github.com/libusb/hidapi/files/7060124/hidapi_mingw32_bin_snapshot.zip)
mcuee commented 2021-08-26 08:45:05 -05:00 (Migrated from github.com)

64bit MSYS2 MinGW64 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085a, as well as the above Fox development files. This is with dynamic build.
hidapi_mingw64_bin_snapshot.zip

64bit MSYS2 MinGW64 Windows binary of hidapi, including hidtest.exe and hid hidapi-testgui.exe, for commit 4d63a5085ac6e6a5be6f0f29a42a4e739da30881, as well as the above Fox development files. This is with dynamic build. [hidapi_mingw64_bin_snapshot.zip](https://github.com/libusb/hidapi/files/7060203/hidapi_mingw64_bin_snapshot.zip)
mcuee commented 2021-08-26 08:52:34 -05:00 (Migrated from github.com)

The snapshot binaries are also available from here (hidtest.exe and hidapi-testgui.exe are dynamically linked to the hidapi dll file).
https://github.com/mcuee/hidapi/releases/tag/snapshot_26Aug2021

The snapshot binaries are also available from here (hidtest.exe and hidapi-testgui.exe are dynamically linked to the hidapi dll file). https://github.com/mcuee/hidapi/releases/tag/snapshot_26Aug2021
mcuee commented 2021-08-27 02:38:42 -05:00 (Migrated from github.com)

Screenshot:
hidapi_testgui

Screenshot: ![hidapi_testgui](https://user-images.githubusercontent.com/1294740/131090950-7571d000-2620-44fb-8674-2d623f495c5d.png)
mcuee commented 2021-08-27 02:44:06 -05:00 (Migrated from github.com)

hidpytoy: input report/output report
hidpytoy_input_output

hidpytoy: input report/output report ![hidpytoy_input_output](https://user-images.githubusercontent.com/1294740/131091610-8ddd32cf-6c21-4c9b-87f8-c4e9fc63e235.png)
mcuee commented 2021-08-27 02:44:45 -05:00 (Migrated from github.com)

hidpytoy feature report (out and in)
hidpytoy_feature_report

hidpytoy feature report (out and in) ![hidpytoy_feature_report](https://user-images.githubusercontent.com/1294740/131091668-c7026a64-b4fb-46ec-a6fd-b2cb4c08a472.png)
mcuee commented 2021-08-27 02:47:09 -05:00 (Migrated from github.com)

There is a difference between the test gui and the hidpytoy, I tend to think the HIDAPI test gui is correct.
Ref: https://github.com/libusb/hidapi/issues/285

There is a difference between the test gui and the hidpytoy, I tend to think the HIDAPI test gui is correct. Ref: https://github.com/libusb/hidapi/issues/285
mcuee commented 2022-04-25 00:16:47 -05:00 (Migrated from github.com)

README.md has been updated. So I think we can close this issue.
https://github.com/libusb/hidapi/blob/master/README.md

README.md has been updated. So I think we can close this issue. https://github.com/libusb/hidapi/blob/master/README.md
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-libusb/hidapi#68
No description provided.