Ниже приведен пример для описания моей проблемы:
ld -Lpath1 -Lpath2 -lA -lB -Xlinker -T -Xlinker \
-W1,-rpath,/usr/local/lib -l-o target
ld: cannot find -lA
collect2: ld returned 2 exit status
И path1, и path2 являются относительными путями, и я могу найти библиотеку A в соответствии с pwd ld, так почему же ld вывел этоошибка msg?
Может ли кто-нибудь дать мне несколько советов по устранению этой проблемы?
Мне не хватает некоторых, перед библиотекой с именем rt.
стоит "-static".Ваше предложение, я пытаюсь позволить gcc управлять ld для выполнения процесса линковки.gcc Ao Bo -mabi = 64 -static -lrt -Xlinker -T -Xlinker ld.script -W1, -rpath, / usr / local / lib -lmemdbg -o цель - это не работает.
изатем я удаляю опцию "-static" и другую динамическую библиотеку после -lpthread (потому что rt зависит от pthread, который обнаруживается при удалении "-static")
gcc Ao Bo -mabi = 64 -lrt-lpthread -Xlinker -T -Xlinker ld.script -W1, -rpath, / usr / local / lib -lmemdbg -o target и на этот раз объекты успешно связаны друг с другом.
и затем я пытаюсьвыясните, почему команда "-static" не работает, передав "-v" в gcc.появилась какая-то опция "-L", и я нашел в списке поиска библиотеку с именем librt.a.
Я действительно запутался.версия gcc - 4.3