我试图了解cmake的工作原理。
我正在使用自制软件包管理器在Mac上工作。我用自制软件安装了libpng。标头包含路径位于/ usr / local / include中,这也是c ++,g ++,clang的标准包含标头路径。
例如,如果我这样做:
...
find_package(PNG)
target_link_libraries(mytarget PNG::PNG)
...
即使我扔了find_package(PNG),编译器也会自动找到标头。 Cmake只是知道我在cpp文件中引用的png.h位于/ usr / local / include中。
但是出于某种原因,如果我构建自己的库,然后将其安装在/ usr / local / lib和/ usr / local / include中,然后编写一些find_library,find_path代码以查找我的新烘焙的标头和库lib,找不到我的头文件mylib.h,该头文件也在我的cpp文件中引用。错误是找不到mylib.h。
cmake如何处理PNG,Eigen,Boost等众所周知的程序包,因此它会自动查找标头?