Я пытаюсь выполнить файл cpp с именем «palindrome.cpp» с помощью терминала на моем Macbook. Этот файл cpp использует внешнюю библиотеку с именем «libStanfordCPPLib.a», которая находится под «DIRECTORY TO CPP FILE/StanfordCPPLib», а также соответствующие файлы заголовков этой библиотеки находятся в этой папке «StanfordCPPLib».
Вы можете увидеть структуру папок на этом скриншоте: ссылка на внешнюю статическую библиотеку по g ++
Мой код для компиляции этого исходного кода:
g++-4.8 -Wall -I/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib -L/Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib palindrome.cpp libStanfordCPPLib.a
Как я понимаю, -I обозначает путь к папке, где существуют файлы заголовков и -L обозначает путь к каталогу, в котором существует библиотека (.a файл). Вот почему оба -I и -L - это один и тот же путь к каталогам "/ Users/myName/Downloads/CS106B/palindrome/StanfordCPPLib".
Однако выполнение этой команды возвращает ошибку: «libStanfordCPPLib.a: Нет такого файла или каталога». Как показано на скриншоте:
Может ли кто-нибудь понять, почему это происходит? Благодарю.
попробуйте запустить ту же команду с удалением части «Lib» от имени библиотеки «StanfordCPPLib.a» или как «StanfordCPP.a» .. потому что, как я знать, что компоновщик будет префикс и постфишировать имя вашей библиотеки с помощью lib, прежде чем искать его. –
Нет, он все еще не может работать. Сообщение об ошибке «error: StanfordCPP.a: Нет такого файла или каталога» – LeonloveKaren
Вы пытались использовать StanfordCPPLib.a? –