在便携式 ZIPPED 文件夹中包含一个 .h 文件
Including a .h file in a portable ZIPPED folder
我有一个问题。
我当前的项目有一个 header 我在开头包含。我这样包含它:
#include <C:/Data/Programming/Project_2018/Files/header.h>
事实证明这是个问题,因为我无法将它移植到另一台计算机上。我的问题是,我是否可以对 #include 进行某种更改以强制编译器在与使用它的 c 文件相同的文件夹中查找此 header.h?
#include <.../Files/header.h>
用...代表 main.c 文件所在的文件夹?
这个项目的最终目标是一个 zip 文件夹,它被交付以在任何计算机上使用,所以我需要这种可移植性...
有线索吗?
是的,您可以在 C 中使用相对包含。如果您从包含 main.c
的目录进行编译,#include "header.h"
将适用于您。请注意双引号,它告诉编译器查看源代码树,而不是包含路径。
如果你的目录结构是这样的:
.../files/
.../files/main.c
.../files/include/header.h
那么你会想要 #include "include/header.h"
。你也可以向上移动树,所以
.../files/src/main.c
.../files/include/header.h
你可以#include "../include/header.h"
。路径是 unix-y,在 unix land 中,..
是父目录。
This question 也可能相关。
我有一个问题。
我当前的项目有一个 header 我在开头包含。我这样包含它:
#include <C:/Data/Programming/Project_2018/Files/header.h>
事实证明这是个问题,因为我无法将它移植到另一台计算机上。我的问题是,我是否可以对 #include 进行某种更改以强制编译器在与使用它的 c 文件相同的文件夹中查找此 header.h?
#include <.../Files/header.h>
用...代表 main.c 文件所在的文件夹?
这个项目的最终目标是一个 zip 文件夹,它被交付以在任何计算机上使用,所以我需要这种可移植性...
有线索吗?
是的,您可以在 C 中使用相对包含。如果您从包含 main.c
的目录进行编译,#include "header.h"
将适用于您。请注意双引号,它告诉编译器查看源代码树,而不是包含路径。
如果你的目录结构是这样的:
.../files/
.../files/main.c
.../files/include/header.h
那么你会想要 #include "include/header.h"
。你也可以向上移动树,所以
.../files/src/main.c
.../files/include/header.h
你可以#include "../include/header.h"
。路径是 unix-y,在 unix land 中,..
是父目录。
This question 也可能相关。