2015-03-04 4 views
1

У меня есть проект, который использует как OpenCv, так и wxWidgets в статической библиотеке. Эти две библиотеки имеют определения для jpeg и, следовательно, порождают конфликты во время компиляции.Как остановить cmake добавить wxjpeg.lib в проект визуальной студии?

Поскольку я не использую jpeg, находящийся внутри wxwidget, я хотел бы удалить эту библиотеку из своего приложения. Я протестировал свое приложение, и если я удалю эту библиотеку вручную из ПООС, это хорошо работает.

В CMake У меня есть эта линия, чтобы добавить WxWidgets к моему проекту:

set(wxWidgets_CONFIGURATION msvc) 
find_package(wxWidgets COMPONENTS core base adv REQUIRED) 
include(${wxWidgets_USE_FILE}) 

Как я могу проинструктировать CMake не добавлять wxjpeg.lib запрашиваемых связанных библиотек?

ответ

1

На основе документации к данному модулю Cmake (link) Я бы сказал, что добавление

set(wxWidgets_EXCLUDE_COMMON_LIBRARIES TRUE) 

перед использованием команды find_package будет достаточно, чтобы исключить wxjpeg.lib. Поскольку это также исключает другие общие библиотеки (например png), возможно, придется явно включить больше в вашем вызове find_package

find_package(wxWidgets COMPONENTS core base adv png REQUIRED) 
+0

Спасибо, но после выполнения этого я получаю эту ошибку: Ошибка ошибки LNK2019: неразрешенный внешний символ wx_png_create_read_struct, ссылающийся на функцию public: virtual bool __cdecl wxPNGHandler :: LoadFile (класс wxImage *, класс wxInputStream &, bool, int) "(? LoadFile @ wxPNGHandler @@ UEAA_NPEAVwxImage @@ AEAVwxInputStream @@ _ NH @ Z) \t C : \ MyData \ SourceCodes \ Сложение \ wxmsw30ud_core.lib (imagpng.obj) – mans

Смежные вопросы