Не могу связать статический двоичный файл с #include его - PullRequest
2 голосов
/ 10 ноября 2019

Добрый день,

У меня есть файл, который я пытаюсь скомпилировать, и в нем есть #include для статически связанного двоичного файла.

#!/bin/bash

g++ -Wall -std=c++17 Message.cpp ../textmagic-rest-cpp/lib/libtextmagic.a

Я получаю следующееошибка: фатальная ошибка: libtextmagic.h: такого файла или каталога нет

Указанный мною относительный путь верен, если предположить, что текущим рабочим каталогом является каталог, в котором находится скриптназывается / RAN. Возможно, я неправильно связывал двоичный файл, и я искал в Интернете, но другие сообщения / ресурсы мне не помогли.

Обратите внимание, что скрипт запускается в том же каталоге, что и Message.cpp.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2019

g++ имеет флаги -I и -L, которые делают это для вас. Ваш флаг будет выглядеть так: -I/ThePathToYourHeaders и -L/ThePathToYourLib. Я не знаю, поддерживает ли g++ относительные пути, но абсолютные пути там гарантированно будут работать.

Также вам, вероятно, нужно добавить флаг компоновщика. Для вашего проекта это будет -ltextmagic. Это просто имя файла .a, с которым вы хотите связать, без lib перед именем файла.

1 голос
/ 10 ноября 2019

Директива #include должна «прочитать» заголовочный файл, который вы задаете в качестве аргумента, и он не включен в статическую библиотеку.

Вы можете включить использование относительного пути к исходному файлу. или передайте расположение файла заголовка компилятору, используя аргумент -I.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...