[問題] 關於寫自已用的函數...
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
自已寫了一個函數在一個header file,在另一個檔案中呼叫時出錯。
希望得到的正確結果:
能正確的使用函數
程式跑出來的錯誤結果:
[Linker error] undefined reference xxxx(函數名稱)
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dec C++ / windows 7
有問題的code: (請善用置底文標色功能)
=================================main.c=====================================
#include <stdio.h>
#include <stdlib.h>
#include "header1.h"
extern int test_i;
void show_float_arr(float* a, int size);
int main(int argc, char *argv[])
{
float a1[10]={1.1, 7.7, 2.2, 5.5 , 6.6, 0.0 , 8.8 , 4.4 , 9.9, 3.3 };
//show_float_arr(a1 , 10); //這一行出錯,想用在header1.h中自已寫的function
printf("%d" , test_i);
system("PAUSE");
return 0;
}
================================header1.h================================
#include <Math.h>
int test_i=13;
//void show_float_arr(float* a, int size);傳入陣列的位址和大小,顯示這個陣列
void show_float_arr(float* a , int size)
{
int i;
for(i=0 ; i<size ; i++ )
{
printf("%f\n" , a[i]);
}
}
補充說明:
我寫了兩個檔案main.c和header1.h,在main.c中想試試看呼叫header1.h中自已寫的函式
不過一直compile 不過。但是main.c中呼叫外部的test_i確能顯示出正確的數字13...
後來試著建立project然後在project->project options 中Linker的parameters中加上
-lheader1看看是不是Linker出錯..
不過錯誤變成:
cannot find -lheader
Id returned 1 exit status
Google上大多都是講1)include標頭檔 2)標頭檔都是只有function prototype 我是把功
能寫在標頭檔裡.關於Linker的設定我也做了,不過還是無法順利compile。這應該是往後
寫程式的重要技巧(能用別人寫的function)我確不能完成....Orz.還請先進指點哪裡出錯
謝謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 72.229.53.41
→
08/30 14:36, , 1F
08/30 14:36, 1F
→
08/30 14:36, , 2F
08/30 14:36, 2F
→
08/30 14:37, , 3F
08/30 14:37, 3F
→
08/30 14:37, , 4F
08/30 14:37, 4F
→
08/30 14:38, , 5F
08/30 14:38, 5F
→
08/30 14:41, , 6F
08/30 14:41, 6F
推
08/30 16:40, , 7F
08/30 16:40, 7F
推
08/30 18:41, , 8F
08/30 18:41, 8F
※ 編輯: doomhammer 來自: 72.229.53.41 (08/30 19:12)
→
08/30 19:16, , 9F
08/30 19:16, 9F
→
08/30 19:17, , 10F
08/30 19:17, 10F
→
08/30 19:18, , 11F
08/30 19:18, 11F
→
08/30 21:13, , 12F
08/30 21:13, 12F
→
08/30 21:15, , 13F
08/30 21:15, 13F
→
08/30 21:27, , 14F
08/30 21:27, 14F
→
08/30 21:28, , 15F
08/30 21:28, 15F
→
08/30 21:29, , 16F
08/30 21:29, 16F
→
08/30 21:32, , 17F
08/30 21:32, 17F
→
08/30 21:33, , 18F
08/30 21:33, 18F
→
08/30 21:34, , 19F
08/30 21:34, 19F
→
08/30 22:26, , 20F
08/30 22:26, 20F
推
08/30 23:38, , 21F
08/30 23:38, 21F