2017-04-16 54 views
0

https://stackoverflow.com/questions/43423803/document-classification-tool-in-c-compilation-error/43432470#43432470文檔分類工具 - 在嵌套函數/範圍編譯錯誤(可以是)

在上述鏈路 我加入-fnested_functions作爲

GCC -c ./rainbow後得到3個錯誤。 ç-fnested函數process_wv.c test_file.c test_hdb_file.c

(3檔process_wv,test_file裏面,test_hdb_file從rainbow.c移除和現在加入作爲單獨的.c文件的目錄)

輸出: -

./bow/libbow.h:1345:8: note: forward declaration of 'struct argp_child' 
struct argp_child;    /* forward declare this type */ 
    ^
./rainbow.c:655:5: error: function definition is not allowed here 
    { 
    ^
./rainbow.c:663:8: warning: extra tokens at end of #endif directive [-Wextra-tokens] 
#endif VPC_ONLY 
    ^
     // 
./rainbow.c:734:3: warning: implicit declaration of function 'do_indexing' is invalid in C99 
     [-Wimplicit-function-declaration] 
    do_indexing(); 
^
./rainbow.c:1175:49: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between 
     pointers to integer types with different sign [-Wpointer-sign] 
    newsockfd = accept(rainbow_sockfd, &cli_addr, &clilen); 
               ^~~~~~~ 
/usr/include/sys/socket.h:681:69: note: passing argument to parameter here 
int  accept(int, struct sockaddr * __restrict, socklen_t * __restrict) 
                     ^
./rainbow.c:1586:30: error: use of undeclared identifier 'test_file' 
     bow_map_filenames_from_dir (test_file.c, 0, dir, ""); 


          ^

PS爲什麼test_file.c不明(在docnames.c bow_map_filenames_from_dir)在rainbow.c即使它們是相同的弓20020213文件夾內(權限是755所有)

問候

回答

0

採取這一..作爲一個起點:

./bow/libbow.h:1345:8: note: forward declaration of 'struct argp_child' 
struct argp_child;    /* forward declare this type */ 

鏈接的代碼中有沒有包括所有的頭文件(在任何特定的頭文件)的主要問題該特定的頭文件需要。

順便說一下:'struct argp_child'是在./argp/argp.h頭文件中定義的。

我做了以下內容:

通過的.zip設施

擴大了我的Ubuntu Linux操作系統的計算機

cd ~/src_bow 
./configure 

編輯導致的.zip文件到〜/ src_bow下載的所有文件'Makefile'來定義宏:

CFLAGS = -g -O -Wall -Wextra -std=gnu11 -Wimplicit 

然後輸入:

make -f Makefile 

結果是幾百個警告,注意和錯誤

大多數編譯器輸出消息都是關於語法,完整的結構定義,忽略修飾符和轉換然而,有許多暴露許多其他問題。

修復了幾百個問題後,我停了下來。

要回答你的問題,你遇到的問題的根源與相應的頭文件沒有包含在其他頭文件中,而這些頭文件不包含在每個頭文件中的頭文件中。