CMake не может добавить символ в статическую библиотеку, присутствующую в файле o - PullRequest
0 голосов
/ 10 октября 2019

У меня есть простой проект, использующий систему сборки cmake, которая создает статическую библиотеку, которая включает мою реализацию кольцевого буфера. Из вывода make я вижу, что файл ringbuffer.c.o создается со следующими символами:

00000000000000f8 g     F .text  0000000000000066 ringbuf_put
000000000000015e g     F .text  000000000000008d ringbuf_get
00000000000001eb g     F .text  0000000000000012 ringbuf_full
00000000000001fd g     F .text  0000000000000012 ringbuf_capacity
000000000000020f g     F .text  0000000000000071 ringbuf_size
0000000000000280 g     F .text  000000000000002b ringbuf_clear

Хотя они не определены в libbuffer.a или, скорее, определены несколько раз?

0000000000000000 l    df *ABS*  0000000000000000 ringbuffer.c
00000000000000f8 g     F .text  0000000000000066 ringbuf_put
000000000000015e g     F .text  000000000000008d ringbuf_get
00000000000001eb g     F .text  0000000000000012 ringbuf_full
00000000000001fd g     F .text  0000000000000012 ringbuf_capacity
000000000000020f g     F .text  0000000000000071 ringbuf_size
0000000000000280 g     F .text  000000000000002b ringbuf_clear
0000000000000000         *UND*  0000000000000000 ringbuf_put
0000000000000000         *UND*  0000000000000000 ringbuf_size
0000000000000000         *UND*  0000000000000000 ringbuf_get
0000000000000000         *UND*  0000000000000000 ringbuf_clear

командакоторый использовался для связи библиотеки:

/usr/bin/ar qc ../lib/libbuffer.a CMakeFiles/ringbuf.dir/ringbuffer.c.o 
/usr/bin/ranlib ../lib/libbuffer.a

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...