nickdademo / cypress-fx3-sdk-linux

Cypress FX3 SDK v1.3.1 configured to build from the firmware sources. Eclipse integration of device flashing also included.
39 stars 30 forks source link

EZ-USB-FX3 SDK for Linux fails to compile #1

Open despectusvr opened 6 years ago

despectusvr commented 6 years ago

I'm attempting to build the EZ-USB-FX3 SDK for Linux. When I run install.sh (located in (~/Cypress/cyusb_linux_1.0.4) I get the following errors:

sudo ./install.sh Your current directory is ~/Cypress/cyusb_linux_1.0.4. This is where the cyusb_suite software will be installed... g++ -fPIC -o lib/libcyusb.o -c lib/libcyusb.c g++ -shared -Wl,-soname,libcyusb.so -o lib/libcyusb.so.1 lib/libcyusb.o -l usb-1.0 -l rt cd lib; ln -sf libcyusb.so.1 libcyusb.so rm -f lib/libcyusb.o rm -f moc_controlcenter.cpp rm -f ui_controlcenter.h rm -f controlcenter.o main.o fx2_download.o fx3_download.o moc_controlcenter.o rm -f ~ core .core /usr/lib/x86_64-linux-gnu/qt4/bin/uic controlcenter.ui -o ui_controlcenter.h g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o controlcenter.o controlcenter.cpp g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp main.cpp: In function ‘void update_devlist()’: main.cpp:132:62: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error in 'get_active_config_descriptor' "); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb_setAltIf_clicked()’: main.cpp:315:59: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r2, "Error in setting Alternate Interface"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp:319:49: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r1, "Error in claiming interface"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb_setIFace_clicked()’: main.cpp:337:69: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] if ( r ) libusb_error(r, "Error in 'get_active_config_descriptor' "); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void get_config_details()’: main.cpp:427:59: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error getting configuration descriptor"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void get_device_details()’: main.cpp:546:52: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error getting device descriptor"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void set_if_aif()’: main.cpp:632:59: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r2, "Error in setting Alternate Interface"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp:637:48: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r1, "Error in setting Interface"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb_kerneldetach_clicked()’: main.cpp:674:59: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error in detaching kernel mode driver!"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void clearhalt_in()’: main.cpp:1275:81: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while automatically clearing halt condition on IN pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void clearhalt_out()’: main.cpp:1289:82: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while automatically clearing halt condition on OUT pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb6_rcv_clicked()’: main.cpp:1309:37: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Data Read Error"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::pb6_send_file_selected(unsigned char, int)’: main.cpp:1344:41: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error in bulk write!"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::pb6_send_nofile_selected()’: main.cpp:1405:73: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error in bulk write!\nPerhaps size > device buffer ?"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb6_clearhalt_out_clicked()’: main.cpp:1432:68: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while clearing halt condition on OUT pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb6_clearhalt_in_clicked()’: main.cpp:1450:67: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while clearing halt condition on IN pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb7_clearhalt_out_clicked()’: main.cpp:1468:68: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while clearing halt condition on OUT pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In member function ‘void ControlCenter::on_pb7_clearhalt_in_clicked()’: main.cpp:1486:67: error: invalid conversion from ‘int’ to ‘int ()()’ [-fpermissive] libusb_error(r, "Error while clearing halt condition on IN pipe"); ^ main.cpp:73:13: note: initializing argument 1 of ‘void libusb_error(int ()(), const char)’ static void libusb_error(int errno, const char detailedText) ^~~~ main.cpp: In function ‘void in_callback(libusb_transfer)’: main.cpp:1667:67: error: cannot convert ‘libusb_transfer_status’ to ‘int ()()’ for argument ‘1’ to ‘void libusb_error(int ()(), const char)’ libusb_error(transfer->status, "Transfer not completed normally"); ^ main.cpp: In function ‘void out_callback(libusb_transfer)’: main.cpp:1720:67: error: cannot convert ‘libusb_transfer_status’ to ‘int ()()’ for argument ‘1’ to ‘void libusb_error(int ()(), const char*)’ libusb_error(transfer->status, "Transfer not completed normally"); ^ Makefile:230: recipe for target 'main.o' failed make: *** [main.o] Error 1

Erguotou commented 6 years ago

errno is like a reserved word. They shouldn't have used it as a variable name. Change the function static void libusb_error(int errno, const char detailedText) to static void libusb_error(int err_no, const char detailedText) and replace all errno with err_no in the function should fix it.

maswx commented 5 years ago

hi,I encountered the same bug in ubuntu 18.04. Have you solved this problem???

maswx commented 5 years ago

hi, so happy. I solved the problem just now. click here for reference you can use this cmd vim gui_src/main.cpp :%s/errno/_errno/g :wq ./install enjoy it.