2013-07-26 25 views
1

我知道这里有大量的东西存在,但是每当我尝试他们给出的解决方案,它都不起作用,所以我只是想我会得到一个适当的定制解决方案,然后从那里开始工作。用多种包含路径编译c语言

我有,我有我的主要工作目录。

让叫它/工作

和目录内我有我想在我的主,这包括每一个其他几个文件夹在其他文件夹中有依赖关系。现在让我们来看看其中两个。 /work/clibs/linked_list.c这对/work/common/logger.h

一个扶养到目前为止,我已经把一个包括linked_list.h,说

#include "../common/logger.h" 

这应该解决的依赖但事实并非如此。这些文件都没有主要的内容,但如果这是唯一的问题,它不应该让我烦扰依赖关系。

+4

您是否尝试将'/ work'目录添加到您的编译器包含路径中(对于'GCC',您将传递'-I/work')。 – jcxz

+0

看看cmake – Alexis

+0

Does _linked \ _list.c_ _#include_ linked_list.h?定义要由其他文件使用的函数的文件 - 库 - 顺便说一句,不需要_main_。如果您收到错误讯息,请分享。 –

回答

0

您在主程序中包含的任何文件都被视为像添加到您的主程序中的代码部分,这使得它们中的任何#include都被视为从主程序本身完成的#include。

您的主程序位于“/ work”,您包含“clibs/linked_list.h”。在“clibs/linked_list.h”中,将“../common/logger.h”改为“common/logger.h”,它应该可以工作。

+0

好了,有一半的问题是你们提到的,但最重要的是我正在使用cygwin并试图从这里找出-I目录是一场噩梦...... linux使用'/',因为你们都知道和Windows使用'\',所以我试图弄清楚它是使用Linux目录结构还是Windows。原来这是一种混合物。它需要一个Windows目录,所以“C:...”但它需要Linux'/' – user1316538

0

我不认为#include“../common/logger.h”是错误的。你一定有其他的错误,你能给我们一个完整的代码吗?