2016-03-27 51 views
1

我使用inih(https://github.com/benhoyt/inih).ini文件分析器用C寫的但是當我編譯,它給我的錯誤:compilling錯誤:ini_dump.c :(文字+寫0xDE):未定義參考ini_parse

cc -Wall -o dump ini_dump.c

/tmp//ccwzQhqZ.o: In function main: ini_dump.c:(.text+0xde): undefined reference to `ini_parse'

/* ini.h example that simply dumps an INI file without comments */ 

#include <stdio.h> 
#include <string.h> 
#include "../ini.h" 

static int dumper(void* user, const char* section, const char* name, 
        const char* value) 
{ 
    static char prev_section[50] = ""; 

    if (strcmp(section, prev_section)) { 
     printf("%s[%s]\n", (prev_section[0] ? "\n" : ""), section); 
     strncpy(prev_section, section, sizeof(prev_section)); 
     prev_section[sizeof(prev_section) - 1] = '\0'; 
    } 
    printf("%s = %s\n", name, value); 
    return 1; 
} 

int main(int argc, char* argv[]) 
{ 
    int error; 

    if (argc <= 1) { 
     printf("Usage: ini_dump filename.ini\n"); 
     return 1; 
    } 

    error = ini_parse(argv[1], dumper, NULL); 
    if (error < 0) { 
     printf("Can't read '%s'!\n", argv[1]); 
     return 2; 
    } 
    else if (error) { 
     printf("Bad config file (first error on line %d)!\n", error); 
     return 3; 
    } 
    return 0; 
} 
+0

請註明期望的行爲,以及哪些步驟已經採取措施來解決這個問題 –

+0

> CC -Wall -o轉儲../ini.c ini_dump.c 現在它工作。 – Zaza

回答

3

ini_parse()在ini.c中定義,所以您也需要編譯它。假設它是在同一目錄ini.h,你應該能夠編譯一切是這樣的:

cc -Wall -o dump ../ini.c ini_dump.c 
+0

非常感謝@安迪。現在它正在工作。 – Zaza