【发布时间】:2015-02-23 23:27:24
【问题描述】:
我正在对 C 静态库和程序进行测试设置。 库代码位于我项目的子目录“foo”中,包含以下文件:
foo/foo.c:
#include <stdio.h>
void foo(void) {
printf("something");
}
foo/foo.h:
#ifndef foo_h__
#define foo_h__
extern void foo(void);
#endif
我的程序代码如下:
test.c:
#include "foo.h"
int main() {
foo();
return 0;
}
我有一个名为“build”的构建脚本,其中包含以下内容:
构建:
#!/bin/bash
gcc -c -Wall -Werror foo/foo.c
ar rcs libfoo.a foo.o
gcc -static -o test test.c libfoo.a # I have also tried -L. -lfoo
但是当我运行构建时,它给了我以下错误:
test.c:1:17: fatal error: foo.h: No such file or directory
#include "foo.h"
^
Compilation terminated
但是,当我省略 #include 行时,它确实有效,但如果我可以在我的静态库中使用头文件,我会更喜欢。我做错了什么,我该如何解决?
【问题讨论】:
标签: c gcc static-libraries header-files .a