亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4519 | 回復: 7
打印 上一主題 下一主題

linux C++ C混編問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-04-11 10:45 |只看該作者 |倒序瀏覽
描述:我在linux下編譯一個代碼,需要將C++的庫引入,但是,我是寫c的,所以,函數(shù)都是用c實現(xiàn),但是編譯器選用的g++,問題表現(xiàn)是,我有兩個函數(shù)是公函,需要在另外的代碼中實現(xiàn),即放在另外一個源代碼中。這時候編譯出現(xiàn)undefined reference to `trim',trim即我的函數(shù)。如果我將此兩個函數(shù)放在主調函數(shù)所在的源代碼(即同一個源代碼中),則不會出現(xiàn)錯誤。我在此代碼中加入聲明 extern "C" void trim(char *p);也不行。估計是一個很簡單的問題,高人鄙視我的時候手下留情。另外,我把編譯器換成gcc也可以。但是還是想知道原因。請高人不吝解答,謝謝。
環(huán)境:linux g++

論壇徽章:
0
2 [報告]
發(fā)表于 2011-04-11 11:34 |只看該作者
common.h

void func1();
void func2();

common.c

void func1()
{
}
void func2()
{
}

main.cpp


extern "c" {
#include "common.h"
}

論壇徽章:
0
3 [報告]
發(fā)表于 2011-04-11 11:59 |只看該作者
PS:
C實現(xiàn)的代碼gcc編譯
C++的代碼g++編譯

論壇徽章:
0
4 [報告]
發(fā)表于 2011-04-11 12:40 |只看該作者
我的寫法和2樓基本是一摸一樣的。用gcc就沒得問題。我只是想都用g++編譯看行不行,但是如果不放在一個源代碼中間就會報未定義的引用,這個才是問題。不過還是謝謝2樓得兄弟。

論壇徽章:
0
5 [報告]
發(fā)表于 2011-04-11 13:11 |只看該作者
C++會給函數(shù)改名,C不會.所以要extern C防止這個問題.

論壇徽章:
0
6 [報告]
發(fā)表于 2011-04-11 13:33 |只看該作者
回復 4# blackuhlan

都用g++編譯就直接include了
不需要extern

論壇徽章:
0
7 [報告]
發(fā)表于 2011-04-11 15:09 |只看該作者
我看了我的符號表了,是一樣的,不明白為什么不行呢。

論壇徽章:
0
8 [報告]
發(fā)表于 2011-04-11 16:49 |只看該作者
回復 1# blackuhlan


    描述:我在linux下編譯一個代碼,需要將C++的庫引入,但是,我是寫c的,所以,函數(shù)都是用c實現(xiàn),但是編譯器選用的g++,問題表現(xiàn)是,我有兩個函數(shù)是公函,需要在另外的代碼中實現(xiàn),即放在另外一個源代碼中。這時候編譯出現(xiàn)undefined reference to `trim',trim即我的函數(shù)。如果我將此兩個函數(shù)放在主調函數(shù)所在的源代碼(即同一個源代碼中),則不會出現(xiàn)錯誤。我在此代碼中加入聲明 extern "C" void trim(char *p);也不行。估計是一個很簡單的問題,高人鄙視我的時候手下留情。另外,我把編譯器換成gcc也可以。但是還是想知道原因。請高人不吝解答,謝謝。
環(huán)境:linux g++


如果你用g++編譯的話,即使你的文件時.c 也會按c++的方式編譯的,這樣的話加extern也是不行的。
這個你要多注意,一定要和庫統(tǒng)一才行。其實不難。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP