My Boost #include вызывает ошибку компиляции (переформулировано) - PullRequest
1 голос
/ 17 октября 2019

Когда я пытаюсь #include увеличить 1.60 заголовков, gcc не работает. Я в растерянности из-за этого и был бы признателен за любую помощь / руководство. Я использую Fedora Linux и Netbeans 8.2.
Этот вопрос был изначально опубликован под пользователем user11551798, для которого у меня нет пароля, поскольку он был опубликован в моем мобильном приложении.

Фрагмент кода:

#include <boost/regex.hpp>
#include <boost/xpressive/xpressive.hpp>
#include <boost/asio.hpp>

(все три ошибки в #include)

Вызов компилятора (из Netbeans) gcc -O ALAN ALAn.gcc

Ошибки ((образец из asio.hpp)

g++ -g -m64 -lboost_system   -c   -o ALAn.o ALAn.cpp ALAn.cpp: In
Function »int main(int, char**)«: ALAn.cpp:57:23: Error: no matching function for call to 
»boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::basic_resolver()«
    ip::tcp::resolver resolv;
                      ^~~~~~

Отображаемая ошибка компилятора означает «Нет доступных функций» / «Непревзойденный внешний символ» .

Asвсегда, спасибо за любую помощь, я в настоящее время в растерянности. И, конечно, извините за все нарушения. Я новичок здесь.

@ yksisarvinen, @Mathieu Я сейчас установил Boost V1.71 lib. Та же проблема: - (

1 Ответ

0 голосов
/ 18 октября 2019

Просветление пришло после того, как я обновил Boost с V1.60 до V1.71, и мои проблемы не исчезли. Я был уверен, что удалил старые файлы с rm -vf.
Так что я посмотрел на это поближе.
Это точно не было синхронизацией (1), потому что некоторые проблемы сохранялись после syncING. Я посмотрел на инструменты GCC, которые я использую (это Linux). Оказалось, что это была малоизвестная (для меня) утилита кеширования компилятора, CCACHE (1).
Поэтому я очистил кеш компилятора, ccache -c. Это сделало видимым, что инструмент Boost lib не компилирует некоторые заголовки по некоторым причинам sui-generis, включая regex и xpressive, которые я использую.
Так что я исправил это и Voilá! все работало: -)

...