cmake + cpp: нет такого файла или каталога - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь построить этот пример wxWidgets "Hello World" в Linux, используя следующий скрипт cmake:

cmake_minimum_required (VERSION 2.6)
project (wxL)

find_package(wxWidgets 3.0.0 REQUIRED
    COMPONENTS base core net xml html adv qa richtext
)

file(GLOB SOURCES "src/*.cpp")

add_executable(wxL ${SOURCES})

Сборка проекта дает этоошибка:

src/wxL.cpp:3:10: fatal error: wx/wxprec.h: No such file or directory

Файл, указанный во включении, wx/wxprec.h можно найти на диске по этому адресу:

/usr/include/wx-3.0/wx/wxprec.h

Кроме того, другая программа, которую я создал из исходных текстов, включает в себя тот же файл (также с использованием cmake) и прекрасно собирается.

Итак, как мне использовать cmake, чтобы сообщить компилятору, что файл должен быть откуда-то включенв системных каталогах?

Я знаю, что упускаю что-то простое, но не могу понять, что.

1 Ответ

1 голос
/ 30 сентября 2019

Несмотря на то, что вы нашли пакет, ваш исполняемый файл ничего о нем не знает.
Для правильной компиляции исполняемого файла необходимо найти файлы header для вашего пакета вместе с .so / .a файлы. Следующий пример должен помочь вам начать:

include_directories(${wxWidgets_INCLUDE_DIRS})

add_executable(wxL <add-source-files-here>)
target_link_libraries(wxL ${wxWidgets_LIBRARIES})    // links wxWidgets libraries to your executable

Обратите внимание, что использование glob не является рекомендуемым способом добавления исходных файлов в ваш проект.

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