это, вероятно, будет глупым вопросом для вас, но у меня нет опыта работы на C++, что так всегда. Я использую проект с открытым исходным кодом osrm (что удивительно). Чтобы запросить маршрут, вы сделали HTTP-запрос. Чтобы сократить время работы, я хотел бы создать оболочку вокруг кода и вызвать ее с помощью командной строки. Поэтому я немного искал Google и обнаружил, что osrm уже создает статический lib (.a-файл) при компиляции проекта. Я также нашел piece of code, который указывает мне в правильном направлении для создания обертки. Поэтому, чтобы начать, я создаю простую программу hello world (см. Ниже), которая включает в себя некоторые файлы из этой статической библиотеки. Чтобы скомпилировать, я последовал за this учебником. Моя структура каталогов выглядит следующим образом: ./helloWorld.cpp ./libs/libOSRM.aКомпиляция C++ со статическим lib
И команда для компиляции заключается в следующем:
gcc –static helloworld.cpp –L ./libs –l libOSRM.a
Код это Selve:
#include "Router.h"
#include "boost/filesystem/path.hpp"
#include "ServerPaths.h"
#include "ProgramOptions.h"
#include <InternalDataFacade.h>
#include <viaroute.hpp>
#include <iostream.h>
main()
{
cout << "Hello World!";
return 0;
}
точная ошибка я получил:
fatal error: ServerPaths.h: No such file or directory #include "ServerPaths.h"
Когда вы используете опцию '-lNAME', компоновщик будет искать библиотеку с именем' libNAME.a', поэтому измените свой вариант на '-lOSRM', и библиотека будет найдена. –
Мой комментарий выше был просто предположением, потому что вы не говорите, в чем ваша проблема, или если у вас даже есть * проблема. Какой у Вас вопрос? Пожалуйста, дополните! –
Я обновил вопрос. Извините, если не ясно. Я обновил свою команду, но все равно получил ту же ошибку. – jorne