Errore Linker e Build

di il
8 risposte

Errore Linker e Build

Salve a tutti, sto cercando di utilizzare una SDK per il riconoscimento facciale, ma non riesco a implementarla nel mio programma. In particolare quando effettuo la compilazione mi da i seguenti errori:
  [Linker error] undefined reference to `_imp__FSDK_ActivateLibrary' 
  ld returned 1 exit status 
 C:\Dev-Cpp\Programma riconoscimento facciale\Makefile.win [Build Error]  [Release/riconoscimento_facc.exe] Error 1 
Dal momento che il tutto prevede l'utilizzo di librerie, dll e file vari, posto il tutto come file zippato.

Ecco la documentazione fornita dal distributore delle SDK:
Using with C/C++
For Microsoft Visual C++ applications, you need to include the header file include\C\LuxandFaceSDK.h, and the stub library file facesdk.lib into your project.
Follow these steps to add the library to your project:
? Copy include\C\LuxandFaceSDK.h into the directory of your project
? For 32-bit applications, copy bin\win32\facesdk.dll and bin\win32\facesdk.lib into the output directory of your project
? For 64-bit applications, copy bin\win64\facesdk.dll and bin\win64\facesdk.lib into the output directory of your project
? Choose Project Properties – Linker – Input – Additional Dependencies, and add facesdk.lib string
? Choose Project Properties – Linker – General – Additional Library Directories Dependencies, and add $(OutDir) string (a reference to the output directory)
? Add the following statement to the beginning of your application:
include "LuxandFaceSDK.h"
The output directory $(OutDir) typically refers to Debug\ or Release\ in the directory of your solution. You may change it in the Configuration Properties – General of your project. You may also choose another directory to store the .lib file, but it is recommended to keep facesdk.dll in the directory where the executable file of your application is located.
You need to redistribute the file facesdk.dll with your application.
Grazie dell'attenzione, spero possiate darmi una mano, io a questo punto non so dove mettere mano

Edit: Non mi ha fatto uploadare il file zippato, l'ho messo su dropbox.

8 Risposte

  • Re: Errore Linker e Build

    Dalla documentazione che hai postato non c'è traccia che tale SDK sia compatibile con DEVC++, pertanto o cambi compilatore o ti carichi dinamicamente la DLL tramite LoadLibrary per poi ottenere il puntatore alle varie funzioni con GetProcAddress.
  • Re: Errore Linker e Build

    Altrimenti quale compilatore mi consigli di usare? Ho windows 7 64 bit.
  • Re: Errore Linker e Build

    La documentazione parla di VC++. Puoi scaricare la version Express gratuita direttamente da Microsoft (usa la versione desktop). Credo supporti anche il 64 bit, ma non avendo io un OS a 64 bit non metto la mano sul fuoco.
  • Re: Errore Linker e Build

    Dal sito Luxand: "FaceSDK supports a variety of operating systems and languages. Luxand FaceSDK is available for all 32-bit(x86) and 64-bit(x64) versions of Windows and Linux and for Intel 64-bit MacOS X. FaceSDK supports C++, Microsoft Visual C++ 6.0/2005/2008, Visual Basic 6.0 (VB6), Visual Basic.NET 2005/2008, Microsoft C# 2005/2008, Java 1.6 or higher, C++Builder 6.0, and Borland Delphi 6.0 or higher."
    Concordo con chi mi ha preceduto che la migliore opzione è, se non puoi lavorare su Linux, utilizzare Microsoft Visual C++ da 6.0 in poi su windoz.
  • Re: Errore Linker e Build

    Vada per il VC++ allora! Grazie dell'aiuto
  • Re: Errore Linker e Build

    Ok come non detto... ho scaricato VC++ 2008 Express ma non mi funge una cosa.
    Posto le istruzioni:
    For Microsoft .NET applications, you need to add the .NET component into your project.
    Follow these steps to add the component in Visual Studio 2005/2008:
    ? Select Project – Add Reference – Browse
    ? For 32-bit applications, choose the file bin\win32\FaceSDK.NET.dll
    ? For 64-bit native applications, choose the file bin\win64\FaceSDK.NET.dll
    ? Add the following statement to the beginning of your application:
    using Luxand
    After that you may use the methods of the Luxand.FSDK namespace for general FaceSDK functions, and Luxand.FSDKCam namespace for webcam-related functions. You may refer just to FSDK and FSDKCam namespaces if using Luxand is specified.
    Once FaceSDK.NET.dll is added to the references, it will be redistributed automatically with your application, so no specific deployment actions are required. You do not need to redistribute facesdk.dll with your application. However, you need to redistribute Microsoft Visual C++ 2008 SP1 Runtime.
    By default, the documentation refers to C/C++ declarations of FaceSDK functions. For example, the function to detect a face is referred to as FSDK_DetectFace function. To refer to this function in .NET, replace the FSDK_ prefix with FSDK. namespace. Thus, the reference to this function becomes FSDK.DetectFace (note that webcam-specific functions are located in the FSDKCam. namespace; refer to Working with Web Cameras for details).
    Ora quando clicco col tasto destro sul progetto -> referenze, faccio aggiungi referenza ma non mi fa aggiungere nulla... cioè non compare manco il tasto cerca!
    Ho fatto anche:
    #include "LuxandFaceSDK.h"
    Ma niente, mi da sempre l'errore:
    Facial Recognizator.obj : error LNK2001: simbolo esterno __imp__FSDK_ActivateLibrary non risolto
    C:\Users\Simone\Desktop\Riconoscimento facciale\Facial Recognizator\Debug\Facial Recognizator.exe : fatal error LNK1120: 1 esterni non risolti
    Suggestions?
  • Re: Errore Linker e Build

    Ho addirittura copiato passo passo le impostazioni di un programma d'esempio ma niente
  • Re: Errore Linker e Build

    Posto le istruzioni:
    Palesemente sbagliate dato se si riferiscono al .NET.

    Quelle corrette le hai riportate nel primo post.
Devi accedere o registrarti per scrivere nel forum
8 risposte