cmake 相当于 MakeFile
cmake equivalent for MakeFile
我按照 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 构建
- 光盘构建
- 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 的新手(一天前开始使用它)所以如果这是一个相当愚蠢的问题,我深表歉意。
好的,按照你对我的评论的回答,问题是因为你通过 embree3 开始你的 include 指令(这对于避免名称冲突是有意义的),cmake 应该将包含 embree3 安装的目录作为 include 目录,不是 embree3 文件夹本身。
这就是 include_directories(/usr/local/include) 而不是 include_directories(/usr/local/include/embree3) 的原因。
我按照 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 构建
- 光盘构建
- 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 的新手(一天前开始使用它)所以如果这是一个相当愚蠢的问题,我深表歉意。
好的,按照你对我的评论的回答,问题是因为你通过 embree3 开始你的 include 指令(这对于避免名称冲突是有意义的),cmake 应该将包含 embree3 安装的目录作为 include 目录,不是 embree3 文件夹本身。
这就是 include_directories(/usr/local/include) 而不是 include_directories(/usr/local/include/embree3) 的原因。