Есть ли способ проверить, является ли найденная библиотека статической библиотекой?Чтобы найти библиотеку, я делаю это:
IF(WIN32)
SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib)
ELSE()
SET(CMAKE_FIND_LIBRARY_SUFFIXES .a)
ENDIF()
find_library(QUANTLIB_LIBRARY NAMES QuantLib PATHS ${QUANTLIB_LIBRARY_SEARCH})
Но в Windows .lib
может быть символьным файлом для DLL.Я должен убедиться, что это на самом деле статическая форма библиотеки, в противном случае последующие ссылки приведут к трудным для понимания сообщениям об ошибках.
Если вам интересно, я неЯ действительно не хочу использовать атласную библиотеку, но QuantLib не работает в отношении многопоточности и разделяемых библиотек.Это мой лучший шанс заставить его работать правильно: статическая ссылка на одну из моих общих библиотек.