看板 C_and_CPP 關於我們 聯絡資訊
因為想要在Fortran上使用C的函式 所以有此需求 Fortran 與 C混編可以正常work 不過不知道為什麼Fortran跟C++函式混編時都會出錯? # icc -c cfunction.cpp # ifort -c fprogram.f90 都可以正常產生.o檔 然後再把他們串在一起就出錯了 錯誤訊息如: # ifort fprogram.o cfunction.o cfunction.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 使用的是intel compiler v11.1 (for linux ) 不知道有沒有高手可以指點一下的 CODE 如下 -------------------- fprogram.f90 -------------------- 1 program fprogram 2 3 real*8::a,b 4 5 a=1.0 6 7 write(*,*) 'a=',a 8 call cfunction(a) 9 write(*,*) 'After C function is called:' 10 write(*,*) 'a=',a 11 12 end program fprogram ---------------------- cfunction.c ---------------------- 1 void cfunction_(double *a) 2 { 3 *a=23.4; 4 } ------------------------- cfunction.cpp ------------------------- 1 extern "C" 2 { 3 void cfunction_(double *a); 4 } 5 6 void cfunction_(double *a) 7 { 8 *a = 23.4; 9 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.201.102 ※ 編輯: egg9 來自: 140.116.201.102 (05/28 12:14)
james732:拿你貼的錯誤訊息去google有不少資料 或許可以試試 05/28 12:16
egg9:之前google過了 不過沒找到什麼有幫助的相關資訊 05/28 13:09
egg9:不知道一樓能否明示? 05/28 13:09
conanist:F的object code 跟c++的object 可以link嗎? 05/28 13:27
tinlans:你確定 C++ 程式是用 icc 編譯?還有幹嘛用 ifort link? 05/28 14:31
egg9:cfunction.c那個寫法可以work囉 .cpp那個就出錯了 05/28 16:51
egg9:不知道有沒有對C/C++比較熟悉的人可以指點一下C跟C++有哪些 05/28 16:52
egg9:不一樣的地方讓那個CODE不能正常跑的 O.O 05/28 16:53
VictorTom:extern "C" 不用把cfunction的定義也一起括起來嗎?? 05/28 17:54