Как добавить opendnp3 в качестве статической библиотеки C ++

Я хотел ответить на ответ Билла К., но мне не хватает репутации, чтобы добавить там комментарий (на самом деле этот ответ принадлежит). Вы можете думать об этом как добавлении к ответу Билла К., потому что он был немного неполным. Недостатком считается операторная ассоциативность ; а именно, как анализировать выражения типа:

49 / 7 / 7

В зависимости от того, является ли разделение левым или правым ассоциативным, ответ:

49 / (7 / 7) => 49 / 1 => 49

или

(49 / 7) / 7 => 7 / 7 => 1

Как правило, деление и вычитание считаются левыми ассоциативными (т. е. случай два, выше), тогда как возведение в степень является правильным ассоциативным. Таким образом, когда вы сталкиваетесь с рядом операторов с одинаковым приоритетом, вы должны анализировать их, если они оставлены ассоциативными или в обратном порядке, если они являются правильными ассоциативными. Это просто определяет, нажимаете ли вы или выкладываете в стек, поэтому он не слишком усложняет данный алгоритм, он просто добавляет случаи, когда последовательные операторы имеют одинаковую приоритетность (т. Е. Оценивают стеки, если они левые ассоциативные, нажимают на стек, если они являются правильными ассоциативными) .

0
задан cing 1 March 2019 в 00:54
поделиться

1 ответ

Оказывается, это было вызвано двумя проблемами.

Первая проблема заключалась в том, что мне нужно было добавить строку в мой CMakeLists.txt, которая добавила бы заголовочные файлы для opendnp3 в мой проект. Это было достигнуто путем добавления include_directories(<path_to_headers>) перед строкой add_executable(pybexample ${SOURCE_FILES}).

Однако, при этом также стало ясно, что существует вторая проблема: я не построил библиотеку должным образом, так как она не генерировала никаких заголовков с библиотекой. Оказывается, я пропустил инструкции по запуску проекта INSTALL . После установки CMAKE_INSTALL_PREFIX и запуска проекта INSTALL библиотека и заголовки были сгенерированы и готовы к использованию.

0
ответ дан cing 1 March 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: