2013-06-25 3 views
0

Я хотел бы компилировать код с таким заявлением:убунту - не может найти общую библиотеку во время компиляции

c++ -I /usr/boost_1_53_0 boost_test.cpp -o boost \ /usr/lib/boost/libboost_regex.a 

но он бросает

c++: error: /usr/lib/boost/libboost_regex.a: No such file or directory 

Я уверен, что libboost_regex.a в существующий i выше указанного каталога. Как это решить? Я новичок в ubuntu и linux. Ждем ваших советов. Благодарю.

+0

Какой вывод вы используете для 'ls -la/usr/lib/boost/libboost_regex.a'? –

+0

-rw-r - r-- 1 корень root 2627884 cze 25 11:11 /usr/lib/boost/libboost_regex.a – friko

+0

У вас также есть обратная косая черта ("\"), включенная в вашу командную строку? Если это одна строка, вы в конечном итоге будете искать '/usr/lib/boost/libboost_regex.a' - можете ли вы попытаться удалить обратную косую черту? –

ответ

0

Проблема обратная косая черта включена в командной строке:

c++ -I /usr/boost_1_53_0 boost_test.cpp -o boost \ /usr/lib/boost/libboost_regex.a 
               ^
                +-- escaped space character 

Этот обратный слеш следующий символ пробела, так что эффективно имя путь (с использованием percent encoding для лучшей читаемости):

%20/usr/lib/boost/libboost_regex.a 

Чтобы решить эту проблему, просто удалите символ обратной косой черты.