Параметр NAMES для find_library
указывает имя библиотеки, а не имя файла.
Таким образом, в вашем случае правильная команда будет
find_library(PNG_STATIC_LIBRARY
NAMES png
HINTS ${PNG_DIR}
)
Обратите внимание, что в качестве аргументов для NAMES можно указать более одного имени, если библиотека поставляется под разными именами на разных платформах.
Дополнительное усложнение здесь связано с тем, что на Windows у нас есть два несовместимые цепочки инструментов, MinGW и MSV C. Если ваша библиотека имеет окончание файла .a
, она почти наверняка была скомпилирована для набора инструментов MinGW, поэтому вы не сможете использовать ее из сборки Visual Studio. Здесь вам сначала нужно перекомпилировать библиотеку с правильным набором инструментов.