2016-07-25 24 views
0

Ich habe ta-lib in meinem Ubuntu 14.04 installiert, wie in der offiziellen Dokumentation erwähntWie verbindet man ta-lib in Codeblocks (Ubuntu 14.04)?

extract tar.gz 
./configure 
./make 
./make install 

Es ta-lib in /usr/local/include/ta-lib installiert. Ich fügte dann die Kopfzeile zu Talib allein #include <ta-lib/ta_libc.h> hinzu und kompilierte den Code ohne Fehler. aber wenn ich die ta-lib Beispielcodes hinzugefügt

#include <ta-lib/ta_libc.h> 
    TA_RetCode retCode; 
    retCode = TA_Initialize(); 
    if(retCode != TA_SUCCESS) 
    printf("Cannot initialize TA-Lib (%d)!\n", retCode); 
    else 
    { 
     printf("TA-Lib correctly initialized.\n"); 

     /* ... other TA-Lib functions can be used here. */ 

     TA_Shutdown(); 
    } 

es gab einen undefined Fehler, die ich war auf Grund kennen zu verknüpfen Problem in Codeblöcke. So habe ich manuell ta-lib in project>build options> linker settings>link libraries und -lta-lib-other linker options aber das ist jetzt unter denen dieser Fehler

/usr/bin/ld: cannot find -lta-lib 

Antwort

1
./configure 
./make 
./make install 

wird das Paket nicht installieren.

./configure 
make 
sudo make install 

wird es installieren. Das hast du wahrscheinlich getan.

Es installiert ta-lib in/usr/local/include/ta-lib

Nicht ganz. Es installierte die Header-Dateien der Bibliothek unter /usr/local/include/ta-lib und es installierte die statischen und gemeinsamen Bibliotheken unter /usr/local/lib.

I ta-lib in Projekt manuell hinzugefügt> Build-Optionen> Linker-Einstellungen> Link Libraries und -lta-lib auf andere Linker-Optionen

Das sind alternative Möglichkeiten, das Gleiche zu tun. Beide bewirken, dass die Option -lta-lib an den Linker übergeben wird, so dass Ihre Linker-Befehlszeile diese Option zweimal anzeigen würde.

Diese Option weist den Linker für eine gemeinsam genutzte Bibliothek libta-lib.so oder, genannt zu suchen falls eine statische Bibliothek libta-lib.a in jedem der Linker Suche namens Verzeichnisse, die Sie festgelegt haben, wenn überhaupt, und dann in der Standardsuche Verzeichnisse.

Sie keine Linker Suchverzeichnisse angegeben haben, aber das ist in Ordnung, weil /usr/local/lib, wo die Bibliotheken installiert sind, ist einer der Standardsuche Verzeichnisse des Linkers.

Der Linker trotzdem beklagt, dass es nicht eine Bibliothek für die Option -lta-lib, da die Shared Library installiert in /usr/local/lib ist libta_lib.so und die statische Bibliothek ist libta_lib.a finden. Nicht libta-lib.{so|a}.

So: -

  • ersetzen ta-lib mit ta_lib in Build-Optionen ->Linker-Einstellungen -> Link Libraries
  • löschen -lta-lib von Build-Optionen ->Linkers Einstellungen -> O Andere Linker-Optionen
+0

Danke, dass Sie Recht hatten mit dem 'sudo make install' und' ta_lib', das jetzt kompiliert, ohne Fehler – Eka