Ваша команда связывания показывает, что ваш компоновщик является компоновщиком OS X. См. Это руководство относительно опции -l
:
-lx
Эта опция указывает компоновщику искать libx.dylib или libx. a в пути поиска библиотеки. Если строка x имеет форму yo, то этот файл ищется в тех же местах, но без добавления lib
или .a
или .dylib
к имени файла.
Это будет покажет вам, почему все:
-L/usr/lib/ -llibobjc.A.dylib
-L/usr/lib/ -llibobjc.A
-l/usr/lib/libobjc.A.dylib
-l:/usr/lib/libobjc.A.dylib
неверны. В каждой из ваших попыток, где name
- это то, что вы набрали после -l
, компоновщик будет направлен на поиск libname.dylib
или libname.a
. Конечно, ни один из этих файлов - например, liblibobjc.A.dylib.dylib
, liblibobjc.A.dylib.a
- не существует в /usr/lib/
или любом из других указанных или заданных по умолчанию каталогов поиска, и в третьей и четвертой попытках libname.(dylib|a)
преобразуется в строки, которые даже не могут возможно, это неквалифицированные имена файлов.
Ваш последний вариант, очевидно, хочет использовать -l:name
в попытке выполнить поиск компоновщика именно по name
(= /usr/lib/libobjc.A.dylib
). Однако -l:name
является опцией для компоновщика GNU Binutils (компоновщик по умолчанию в Linux) и, согласно документации, не является опцией для компоновщика OS X. (Кроме того, эта опция компоновщика Binutils предписывает компоновщику искать в каждом каталоге файл с точным неполным именем name
, которое /usr/lib/libobjc.A.dylib
не может быть).
Чтобы компоновщик обнаружил libobjc.A.dylib
в /usr/lib/
вам необходим параметр:
-lobjc.A
Рассмотрим, например, другие параметры -l
в вашей команде связывания:
-lcore -leidos -ltskit -lgsl -leidos_zlib
Однако, прежде чем вы попробуете это , Я предлагаю вам проверить /usr/lib
наличие символа c ссылка:
libobjc -> libobjc.A
Это будет означать, что libobjc.A
- это версия из libobjc
что ваша инструментальная цепочка настроена на выбор и что требуемый вариант связывания просто:
-lobjc
Параметр поиска -L/usr/lib/
в любом случае избыточен, поскольку /usr/lib/
является каталогом поиска компоновщика по умолчанию.