我第一次尝试使用CLion(Mac)和CMake。
我的项目根文件夹是/ref
。它被标记为源根。
/ref
中的所有源代码文件夹都标记为库根除/ref/src
,main.c
所在的位置。
这是我的CMakeLists.txt
:
cmake_minimum_required(VERSION 3.6)
project(miniFEPosit)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES /src/main.cpp) # Add main.cpp file of project root directory
add_executable(miniFEPosit ${SOURCE_FILES})
当我尝试构建时,CLion说"找不到源文件:/src/main.cpp
"。如果我只尝试main.cpp
,我会收到相同的消息。
此外,在main.cpp
文件中,所有#include
语句都说&#34;找不到&#34;引用 - 甚至是明显的#include <iostream>
。
另外,任何人都可以推荐一个学习CMake的好地方吗?
答案 0 :(得分:2)
将/src
更改为src
。 &#39; /&#39;使它在根目录中查找文件目录。
set(SOURCE_FILES src/main.cpp)
关于包含文件,您需要添加包含包含所需头文件的项目目录的include_directories()
子句。这使cmake可以正确地向make
和编译器提供它们。
答案 1 :(得分:1)
以下是修正问题的修订后的CMakeLists.txt
文件:
cmake_minimum_required(VERSION 3.6) # CMake version check
project(miniFEPosit) # Create project
set(CMAKE_CXX_STANDARD 11) # Enable c++11 standard
set(SOURCE_FILES src/main.cpp) # Add src/main.cpp file of project root directory as source file
include_directories(basic fem posit utils) # subdirectories of project root /ref
add_executable(miniFEPosit ${SOURCE_FILES}) # Add executable target
找到main.cpp
的关键是消除src/main.cpp
之前的斜杠,这显然会导致它期望绝对路径。在CLion中将目录标记为“库根”不会导致它们被搜索;你必须有一个include_directories(...)
命令。 (CLion documentation似乎表示将目录标记为library root
应该有效,但CMake和CMakeLists.txt
文件可能会覆盖此功能 - 任何洞察力都会受到赞赏。)