g cc не может найти библиотеку stati c, установленную в / usr / local / lib - PullRequest
0 голосов
/ 25 марта 2020

Я собрал и установил свою библиотеку в соответствии со следующим cmake:

install(
    TARGETS ${LIBRARY_NAME}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

install(
    TARGETS ${LIBRARY_NAME}_static
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

, поэтому я получаю:

/usr/local/pkgconfig/libmylib.pc
/usr/local/lib/libmylib.0.1.1.dylib
/usr/local/lib/libmylib.0.dylib
/usr/local/lib/libmylib.dylib
/usr/local/lib/libmylib.a
/usr/local/include/libmylib.h

Теперь, если я попытаюсь построить тест. c:

#include <libmylib.h>
int main() {
    mylibfoo();
}
  • gcc test.c -lmylib источник скомпилирован с библиотекой Dynami c.

else

  • gcc test.c компоновщик выдает следующую ошибку:
Undefined symbols for architecture x86_64:
  "_mylibfoo", referenced from:
      _main in mylibfoo-a8b267.o

Я пытаюсь использовать систему Darwin Kernel версии 19.3.0 (MacOS), но я получаю тот же результат в системе Linux, если я не собираюсь с : gcc test.c -l:libmylib.a

Я хочу, чтобы, если -l не было указано, при сборке использовалась библиотека stati c.

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