Silviu G
Silviu G

Reputation: 1301

cmake + cpp: No such file or directory

I've I'm trying to build this "Hello World" wxWidgets example on Linux, using the following cmake script:

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})

Building the project yields this error:

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

The file specified in the include, wx/wxprec.h can be found on disk at this location:

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

Furthermore, another program that I have built from source includes the same file (also using cmake) and builds just fine.

So, how do I use cmake to tell the compiler that the file should be included from somewhere in the system directories?

I know I'm missing something basic, but I can't figure out what.

Upvotes: 1

Views: 1279

Answers (1)

Quest
Quest

Reputation: 2843

Although you've found the package, your executable does not know anything about it.
For the executable to compile correctly, it needs to find header files for your package together with the .so / .a files. Following example should get you started:

include_directories(${wxWidgets_INCLUDE_DIRS})

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

Please note that using glob is not a recommended way of adding source files to your project.

Upvotes: 2

Related Questions