Я хочу скомпилировать программу C++ с библиотекой twitter в Linux.
Я использую twitcurl в качестве библиотеки API twitter и установлен g++, а также все необходимые файлы и пакеты, которые перечислены на официальном сайте: http://code.google.com/p/twitcurl/wiki/WikiHowToUseTwitcurlLibrary
Однако, когда я скомпилирую свою программу с помощью этой команды g++ twitterClient.cpp -ltwitcurl
, я получаю эту ошибку: cannot find -ltwitcurl
Я также использовал CodeBlocks IDE для его компиляции, но получил эту ошибку: undefined reference to twitCurl::~twitCurl()
'
Мой код содержит только несколько строк:
#include <iostream>
#include "Twitter/Twitter.hpp"
using namespace std ;
int main ()
{
Twitter t ;
return 0 ;
}
Я уже потратил много времени на это, но не могу решить проблему. Что мне делать, чтобы скомпилировать программу в командной строке и CodeBlocks?
$ g++ twitterClient.cpp -ltwitcurl
cannot find -ltwitcurl
Это означает, что ваш компилятор не находит libtwitcurl.so.1.
в своих библиотечных каталогах.
Во-первых, убедитесь, что вы правильно создали библиотеку twitcurl и получили libtwitcurl.so.1.
файл с чем-то вроде этого:
svn co http://twitcurl.googlecode.com/svn/trunk/libtwitcurl
cd libtwitcurl/
make
Во-вторых, убедитесь, что вы поместили файл (или символическую ссылку) в один из путей к вашей библиотеке компилятора:
cp libtwitcurl.so.1.0 /usr/lib/
Вы можете проверить пути библиотеки g++, используя следующую команду:
g++ --print-search-dirs | grep libraries
(/usr/lib/
обычно заканчивается.)
Если вы не хотите/не можете поместить файл в свой путь к библиотеке компилятора, вы также можете указать, где найти libtwitcurl.so.1.
добавив -L/path/to/twitcurl/
в опции g++, но он не нужен, если файл уже находится в одном из путей библиотеки компилятора.
Вам нужно указать путь к twitter lib:
g++ twitterClient.cpp -L/path/to/lib/dir -ltwitcurl