【发布时间】:2021-12-08 19:28:30
【问题描述】:
我按照this 的回答为一个简单的 Makefile 创建了一个 CMakeLists.txt
生成文件
CC = g++
INCFLAGS = -I/usr/local/include/embree3
LDFLAGS = -L"/usr/local/lib/" -lembree3
RM = /bin/rm -f
all:
$(CC) -o main main.cpp $(INCFLAGS) $(LDFLAGS)
clean:
$(RM) *.o main
CMakeLists.txt
cmake_minimum_required(VERSION 3.1.0)
project(aaf_project_impl)
include_directories(/usr/local/include/embree3) # -I flags for compiler
link_directories(/usr/local/lib/) # -L flags for linker
add_executable(main main.cpp)
target_link_libraries(main embree) # -l flags for linking prog target
Makefile 正确编译并且可执行文件运行没有任何问题。要使用 cmake 文件,我执行以下操作(假设我在源目录中)
- mkdir 构建
- cd 构建
- cmake ..
- 制作
第4步中的make抛出如下错误
main.cpp:4:10: fatal error: 'embree3/rtcore.h' file not found
#include <embree3/rtcore.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/main.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/main.dir/all] Error 2
make: *** [all] Error 2
我通过克隆 git 存储库从源代码安装了 embree。我正在使用 Macbook M1 (MacOS Big Sur 11.5.1)。
我对 cmake 很陌生(一天前开始使用它),所以如果这是一个相当愚蠢的问题,我深表歉意。
【问题讨论】:
-
include_directories(/usr/local/include/embree3) 将指向 embree3 目录。那里有第二个嵌套的 embree3 目录吗?
-
也许在你的 CMakeLists.txt 中尝试 include_directories(/usr/local/include) ?
-
@LaurentJospin 非常感谢!进行更改后它可以工作。