Я создал статическую библиотеку, используя команду ar после создания объекта, используя gcc -o file.o -c file.c.сборка статической библиотеки gcc
Теперь я пытаюсь использовать GCC, чтобы связать эту библиотеку в компиляции с помощью команды, подобной этой
gcc -I /PathInclude -L /PathStaticLib -lm \
-std=c99 -o file file.o -lstatic_library_name
с static_library_name я имею в виду, что файл с именем
libstatic_library_name.a
С структура файлов довольно сложная (потому что в основном в компиляции я также заменяю некоторое определение макроса и т. д.), я не публикую весь код, есть ли у вас какие-либо мысли о том, что происходит? если не какая информация я могу вам предоставить, чтобы помочь мне?
PS. там не много файлов o, но внутренняя структура немного сложна для объяснения в нескольких словах, поэтому ... дайте мне знать, что вам нужно.
Я могу предоставить вам содержимое файла make, если вам нужно, не сложно.
PS. Команда ...
gcc -I../CModels -L../CModels/ -std=c99 -o ref_approx_bs3_log2_4_4_1ulp_arch1
ref_approx_bs3_log2_4_4_1ulp_arch1.o -lm -lmy_float
ошибка
ref_approx_bs3_log2_4_4_1ulp_arch1.o: In function `cogen_fp_bs3_log2_4_4_1ulp_arch1':
ref_approx_log2.c:(.text+0x2229): undefined reference to `cast'
ref_approx_log2.c:(.text+0x22d0): undefined reference to `cast'
ref_approx_log2.c:(.text+0x22f7): undefined reference to `cast'
ref_approx_log2.c:(.text+0x232e): undefined reference to `sumFP'
ref_approx_log2.c:(.text+0x2350): undefined reference to `diffFP'
ref_approx_log2.c:(.text+0x2375): undefined reference to `mulFP'
ref_approx_log2.c:(.text+0x239c): undefined reference to `sumFP'
collect2: ld returned 1 exit status
Использование
nm my_float.a
выход
my_float.o:
0000000000000ca8 T _Z11castToFixedyPyyyy
0000000000000a0c T _Z12splitIntFracyPyS_yy
0000000000000324 T _Z28rightShift_and_round2NearestyyPyyy
000000000000005c T _Z3ldzy
0000000000000132 T _Z3mulyyy
000000000000048a T _Z4castyPyyyyy
0000000000000000 T _Z4maxuyy
000000000000002e T _Z4minuyy
00000000000014dc T _Z5mulFPyyPyyy
0000000000000cc2 T _Z5sumFPyyPyyy
000000000000147a T _Z6diffFPyyPyyy
0000000000000300 T _Z9ldzFormatyy
U __gxx_personality_v0
Так я предполагаю, что библиотека .а нормально ...
Я не вижу здесь проблемы или вопроса. – larsks
Прошу прощения ... проблема в том, что даже если я включаю статическую библиотеку, которую я создал, компилятор выплюнул классическую ошибку «неопределенная ссылка». Но я не понимаю, почему ... в этом проблема. – user8469759
Обновите свой вопрос, чтобы включить (a) фактическую командную строку, которую вы используете для создания вещей, и (b) фактический текст сообщения об ошибке. Это позволит нам задавать более полезные вопросы. – larsks