如何使用C中的sublime文本中的外部头文件进行编译?

时间:2016-07-14 16:29:13

标签: c sublimetext3

我在main.c中使用了一个名为header.h的头文件。 函数测试在header.h中公布,并在test.c中定义。 但是,即使我使用构建系统作为C,它也会在下面说出来。

clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
Undefined symbols for architecture x86_64:
  "test(int)", referenced from:
  _main in main-a4d82e.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[Finished in 0.6s with exit code 1]
[cmd: ['bash', '-c', 'g++ -Wall -std=c++11 -O2 \'/Users/hanlock/Documents/CODE/TEST/TEST/main.c\' -o \'/Users/hanlock/Documents/CODE/TEST/TEST/main\' && osascript -e \'tell application "Terminal" to activate do script " cd \\"/Users/hanlock/Documents/CODE/TEST/TEST\\" &&start_ms=$(ruby -e \\"puts (Time.now.to_f * 1000).to_i\\")&&clear&&\\"/Users/hanlock/Documents/CODE/TEST/TEST/main\\" &&elapsed_ms=$(($(ruby -e \\"puts (Time.now.to_f * 1000).to_i\\") - start_ms))&& read -p \\"Press Enter to exit($elapsed_ms ms).\\"&&exit"\'']]
[dir: /Users/hanlock/Documents/CODE/TEST/TEST]
[path: /usr/bin:/bin:/usr/sbin:/sbin]

我在C ++中读过类似的问题。但是,它似乎不适用于我的情况。 所以,问题来了。如何在C语言中使用带有sublime的外部头文件。

以下是代码:

的main.c

#include <stdio.h>
#include "./Header.h"
int main(int argc, const char * argv[]) {
    test(1);
    return 0;
}

header.h

#ifndef Header_h
#define Header_h
int test(int);
#endif

test.c的

#include <stdio.h>
int test(int i){
    printf("%d\n",i);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

在test.c中:

#include "header.h"

在你的shell中:

gcc -I [dir] test.c

这将包括位于dir中的名为header.h的任何外部头。 我希望这能回答你的问题。