2015-04-21 74 views
1

我有3個C++源文件,我需要從一個文件中調用的函數到另一個如何從外部文件調用C++函數?

getch.cpp

#include<stdio.h> 
#include "getch2.h" 
main() 
{ 
char ch='x'; 
fun(ch); 
} 

getch2.cpp

#include<stdio.h> 
void fun(char); 
main() 
{ 

} 
void fun(char x) 
{ 
printf("the ascii value of the char is %d",x); 
} 

func.h

void fun(char); 

當我compil Ëgetch2.cpp我得到的錯誤

C:\用戶\ amolsi \應用程序數據\本地的\ Temp \ cc1k7Vdp.o getch.cpp :(文字+爲0x18):未定義的引用`樂趣(焦炭)」

C:\用戶\ amolsi \文檔\ C文件\ collect2.exe [錯誤] LD返回1個退出狀態

回答

6
  1. main功能需要改爲:

    int main() { ... } 
    
  2. 兩個getch.cppgetch2.cpp包含main功能。你不能一起使用它們來形成一個可執行文件。他們必須用來創建單獨的可執行文件。

  3. 爲了讓您使用fungetch.cppgetch2.cpp建立可執行文件,你需要的void fun(char){...}定義從getch2.cpp移動到另一個.cpp文件。我們稱之爲func.cpp

  4. 使用getch.cppfunc.cpp構建一個可執行文件。

  5. 使用getch2.cppfunc.cpp來構建其他可執行文件。

更新,響應OP的評論

文件func.h


void fun(char); 

文件func.cpp


void fun(char x) 
{ 
    printf("the ascii value of the char is %d",x); 
} 

文件getch.cpp


#include <stdio.h> 
#include "func.h" 

int main() 
{ 
    char ch='x'; 
    fun(ch); 
    return 0; 
} 

文件getch2.cpp


#include<stdio.h> 
#include "func.h" 

int main() 
{ 
    char ch='y'; 
    fun(ch); 
    return 0; 
} 

使用getch.cppfunc.cpp構建可執行文件getch.exe
使用getch2.cppfunc.cpp構建可執行文件getch2.exe

+0

我真的沒有讓你的男人 –

+0

@amolsingh,看到我的更新。 –

0

#include是好的,問題是,你不執行fun任何地方。

+0

你得到的錯誤是編譯'getch.cpp',而不是'getch2.cpp'(它有'fun')。 – zneak

相關問題