Я пытаюсь скомпилировать объектный файл в SOLARIS 10,
g++ -g -fPIC -Wall -fno-builtin -fhuge-objects -Wl,-Bdynamic,-lposix4,-laio,-ldl,-lthread,-Bstatic filename.o -L. -L /directory1 -L /directory2 -ldirectory1 -ldirectory2 -o filename
it is giving following error:
ld: fatal: library -lm: not found
ld: fatal: library -lc: not found
ld: fatal: library -lc: not found
Теперь я просто удивлен, что я даже не включил -lm и -lc в компиляцию командной строки g ++, тогда почему он сообщает об ошибке и когда я даю такую же компиляцию в SOLARIS 8, она работает. Может кто-нибудь объяснить, почему это ведет себя так?
Я использовал следующую команду, чтобы сделать filename.o:
g++ -I/direcroty_containing_header_file -c filename.cpp -o filename.o -g -fPIC -Wall -fno-builtin -fhuge-objects
В Solaris 10 нет ни libc.a, ни libm.a. Солярис 8 делает.
Вы не можете статически связываться с libc или libm на Solaris 10.
Libc и libm являются стандартными C и математическими библиотеками, они обычно автоматически связываются с g ++, так как они так часто используются. Не зная ничего о вашей настройке, трудно сказать, почему я не могу их найти, вероятно, существующие по какой-то причине не используются (другая архитектура, не в пути поиска и т. Д.).