Кажется, cmake не может определить, какие библиотеки можно использовать с текущим компилятором, или, скорее, я хочу, чтобы cmake использовал только библиотеки, которые были скомпилированы с тем же компилятором.Ссылка на внешнюю библиотеку CMake?
Я использую find_library для поиска нужных библиотек, но, похоже, он не может определить, действительно ли библиотека используется. Ему удалось найти библиотеку по имени, но она использовала расширение «.lib», когда я делал конфигурацию для MinGW. Должен ли я создавать папки для каждого компилятора, для компиляции библиотек и добавления операторов if для каждого компилятора в моем скрипте? Это просто похоже на интуицию, на что я полагал, что find_library будет способна. Возможно, я злоупотребляю им? У кого-нибудь есть лучшие идеи?
Спасибо за ответ , вы меньше всего отвечаете на некоторые из моих вопросов. Мне было больше интересно, если вы создаете 64-битный исполняемый файл, тогда CMake автоматически изменит любые каталоги с «/ lib /» на «/ lib64 /», если у вас есть переменная 'FIND_LIBRARY_USE_LIB64_PATHS', я думаю, что это так. – johndoe
Он делает это, но только на «платформах, которые, как известно, нуждаются в нем», я не могу проверить это прямо сейчас, но я уверен, что Windows не входит в этот список платформ (так как стандартного расположения для библиотек в Windows нет в любом случае ...) – Guillaume
Accidentially нажал ввод и он отвечал ... только разрешено редактировать в течение 5 минут так: 'если (MSVC) find_library (MYLIB_LIBRARY MyLib Paths "/ Lib предварительно построенной-MSVC/MYLIB /" ELSEIF (MinGW) # гм не уверен, как проверить компилятор (кажется, предназначено только для MSVC ...) find_library (MYLIB_LIBRARY MyLib ПУТЕЙ "прекомпилированного/Lib-MinGW/MyLib /" ENDIF() ' Вместо того, писать, если sta для каждого компилятора (какой idk кажется, что вокруг есть способ проверить их; по крайней мере, я видел сравнения строк для идентификатора компилятора, которые могут измениться), если кто-то знает лучший способ проверки complrs – johndoe