假设以下目录结构:
-- CMakeLists.txt (1)
-- source
---- CMakeLists.txt (2)
---- view
------ terminal
-------- window.cpp
------ sdl
-------- window.cpp
-- include
---- CMakeLists.txt (3)
---- view
------ terminal
-------- window.h
------ sdl
-------- window.h
我正在尝试创建一个支持两种直观表示的应用程序:基于SDL的和基于文本的(终端)
现在我知道我可以使用(2)和(3)中的CMake指令并使用相应的 add_directory()指令选择合适的头文件/源文件。
在CMake方面一切正常,问题出在gcc方面:
致命错误:View / Window.h:没有这样的文件或目录 #include“View / Window.h”
这当然是预料之中的,因为我还没有更新我的.cpp文件;我根本不知道这里最好的行动方案是什么:
当然,我在这里要完成的是Window.h的无缝使用,与所选的渲染库无关;类似的东西:
#include "View/Window.h" // Could be terminal or SDL
auto window = new Window();
window->ShowText("Stack");
// ...
我觉得这个问题是结构问题;没有完全掌握CMake我可能没有得到它的大部分概念,因此这可能与gcc无关。
粗略总结:
使用多个(图形)库时,什么是有效的CMake / cpp方法?