2017-03-18 6 views
3

からhttp://repo.or.cz/mit-jos.git/treeまたはhttps://pdos.csail.mit.edu/6.828/2016/jos.gitCMakeどのように山かっこで使用できるようにヘッダーファイルをインクルードするか?私はMIT JOSオペレーティングシステムのプロジェクトのためにCMakeを使用しようとしています

ここでは、ディレクトリ構造が

lab 
- .bochsrc 
- CODING 
- GNUmakefile 
- boot 
- conf 
- fs 
- grade.sh 
+ inc 
    - assert.h 
    - elf.h 
    - error.h 
    - kbdreg.h 
    - memlayout.h 
    - mmu.h 
    - stab.h 
    - stdarg.h 
    - stdio.h 
    - string.h 
    - types.h 
    - x86.h 
- kern 
- lib 
- mergedep.pl 
- user 
- CMakeLists.txt 

あるlabフォルダ(つまり、プロジェクトフォルダ)の下のCMakeLists.txt

のように見えます
cmake_minimum_required(VERSION 3.6) 
    project(lab) 

    set(CMAKE_CXX_STANDARD 11) 

    set(SOURCE_FILES 
      boot/main.c 
      fs/test.c 
      kern/console.c 
      kern/console.h 
      kern/entrypgdir.c 
      kern/init.c 
      kern/kdebug.c 
      kern/kdebug.h 
      kern/monitor.c 
      kern/monitor.h 
      kern/printf.c 
      lib/printfmt.c 
      lib/readline.c 
      lib/string.c 
      user/sendpage.c) 

    add_executable(lab ${SOURCE_FILES}) 

ヘッダファイルをincに含めるにはどうすればソースファイルを#include "../inc/types.h"ではなく#include <inc/types.h>などを使用しますか?角括弧と引用符の間の差については

target_include_directories(lab PRIVATE ${CMAKE_SOURCE_DIR}) 

:あなたは例えば(あなたのCMakeLists.txtの終わりに)、target_include_directoriesを使用して、ターゲットのディレクトリを含める追加する必要があるよう

+0

フォルダツリーから判断すると、作成した人は、インクルードフォルダに 'inc'を追加し、' #include 'の代わりに '#include 'を使用したかったと思います。 –

答えて

1

ですね#includeを使用すると、通常は 'system'ヘッダーファイル(C/C++標準ヘッダーなど)にのみ山括弧を使用し、ユーザーが指定したヘッダーには引用符を使用します(What is the difference between #include <filename> and #include "filename"?参照)。

+0

'lab'ディレクトリの' CMakeLists.txt'の最後に 'target_include_directories(lab PRIVATE inc)'を追加しようとしました。致命的なエラー: 'inc/mmu.h'ファイルが見つかりません。#include 'と同じ種類のエラーが表示されます。 'inc'ディレクトリの下に' CMakeLists.txt'が必要ですか?もしそうなら、それには何が含まれるべきですか? – srgsanky

+1

@srgsanky:これはヘッダファイルを 'inc/mmu.h 'として扱うことができるルートソースディレクトリ(あなたの場合は' lab')です。したがって、代わりにこのディレクトリを含める必要があります: 'target_include_directories(lab PRIVATE $ {CMAKE_SOURCE_DIR})'。 – Tsyvarev

+0

はい、Tsyvarevは正しいです、更新された答え – MuertoExcobito

関連する問題