windows - Brug cygwin til at kompilere et c-program ved hjælp af ftd2xx.lib af FTDI

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at kompilere en prøve 64-bit c progam ved hjælp af ftd2xx lib ved FTDI ved hjælp af gcc inden cygwin uden succes. Jeg ender altid i linkerfejl.


Mit projekt indeholder disse filer:



  • main.c Min prøveeksempel

  • ftd2xx.h Bibliotekets overskrift

  • ftd2xx.lib Importbibliotek

  • ftd2xx64.dll dynamisk bibliotek 64 bit

  • wintypes.h Wrapper brugt af ftd2xx.h for at inkludere windows.h



Dette er min hovedfunktion:


#include <stdio.h>
#include <windows.h>  // for windows specific keywords in ftd2xx.h
#include "ftd2xx.h"   // Header file for ftd2xx.lib
int main()
{
   FT\_HANDLE ft\_handle;  // handle to the USB ic
   FT\_STATUS ft\_status;  // for status report(error,io status etc)

   ft\_status = FT\_Open(0,&ft\_handle); //open a connection

   if(ft\_status == FT\_OK) //error checking
     {
        printf("

	Connection with FT 232 successfull
");
     }
   else
     {
        printf("

	Connection Failed !");
        printf("
	Check device connection");
     }
    FT\_Close(ft\_handle);    //Close the connection
    return 0;
 }


Dette er min linker cmd


Building target: testSimple.exe
Invoking: Cygwin C Linker
gcc -L/cygdrive/e/jschubert/workspaces/testSimple/ -o "testSimple.exe"  ./main.o   -lftd2xx


Og her er min output


/cygdrive/e/jschubert/workspaces/testSimple//ftd2xx.lib(FTD2XX.dll.b):(.text+0x2): relocation truncated to fit: R\_X86\_64\_32 against symbol `\_\_imp\_FT\_Open' defined in .idata$5 section in /cygdrive/e/jschubert/workspaces/testSimple//ftd2xx.lib(FTD2XX.dll.b)
/cygdrive/e/jschubert/workspaces/testSimple//ftd2xx.lib(FTD2XX.dll.b):(.text+0x2): relocation truncated to fit: R\_X86\_64\_32 against symbol `\_\_imp\_FT\_Close' defined in .idata$5 section in /cygdrive/e/jschubert/workspaces/testSimple//ftd2xx.lib(FTD2XX.dll.b)


Efter at have læst artiklen Hvordan virker importbiblioteket? Detaljer? og http://www.mikrocontroller.net/topic/26484 Jeg er ganske sikker på, at der er et problem med de genererede eksport lib funktioner. Men hvordan retter jeg dem? [5]

Bedste reference


På Cygwin -mcmodel=medium er allerede standard. Tilføjelse -Wl, - image-base -Wl, 0x10000000 til GCC linker repareret fejlen.