Разница между связыванием директории библиотеки и архива - PullRequest
0 голосов
/ 13 апреля 2020

Этот вопрос, вероятно, задавался десятки раз, но я не могу найти подходящий ответ.

Я пытаюсь создать простой проект с использованием Bazel. Проект включает в себя библиотеку GLFW. К сожалению, я не могу правильно связать проект. Прямо сейчас Bazel производит следующую команду для компоновщика.

ld ... -lc++ -S bazel-out/darwin-fastbuild/bin/main/_objs/orbit/main.o lib/GLFW/libglfw3.a -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework Foundation

По некоторым причинам, хотя библиотека включена, компоновщик отвечает

ld: library not found for -lglfw3

Но если вместо компоновки архива библиотеки я просто использовал бы свой каталог, он работает и хорошо компилируется.

 ld ... -lc++ -S bazel-out/darwin-fastbuild/bin/main/_objs/orbit/main.o -L/Users/mightykho/Stuff/cpp/orbit/lib/GLFW -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework Foundation

Не могли бы вы объяснить мне, почему это имеет значение и как добиться тех же результатов, связывая только архив?

...