導航:首頁 > 程序命令 > 1個無法解析的外部命令

1個無法解析的外部命令

發布時間:2022-04-15 06:13:29

Ⅰ C語言中顯示無法解析的外部命令

這是因為c和c++混編帶來的問題。

1,問題根源:c++是支持類和名字空間,函數重載等高級技巧的。以函數重載為例:

int Add(int a, int b)

int Add(int a, int b, int c)

這意味著不同的函數有同樣的名字(你寫的,都叫Add),但是同樣的名字會帶來混淆,所以使用了一種叫「名字毀壞」的技術,不同的編譯器有不同的毀壞規則,只要能實現區分就好。

所以,經過c++編譯器的處理,你的Add名字已經面目全非,比如我這里叫:

錯誤 LNK2019 無法解析的外部符號 "int __fastcall Add(int,int)" (?Add@@YIHHH@Z),函數 _main 中引用了該符號。

到這,都沒什麼,只不過名字變了一下,只要編譯器能處理正確就好。

但是,重點來了,你放了一個c文件進去,c語言,是不支持這些高級玩意兒的,名字也不會毀壞,這樣,一個毀壞一個還是原名,得,兩下對不上了。

2,解決辦法

解決辦法也是模式化的,當你聲明的變數或者函數在c文件實現的時候,在h文件里聲明的時候,用這樣的結構包含起來,無論有多少個函數,都可以放在一起。

#ifdef __cplusplus

extern "C" {

#endif

int Add(int, int);

//其他聲明

#ifdef __cplusplus

}

#endif

再編譯就不會出現Link錯誤了。

頭文件全文如下:

#pragma once

#ifdef __cplusplus

extern "C" {

#endif

int Add(int, int);

#ifdef __cplusplus

}

#endif

Ⅱ 1 個無法解析的外部命令

沒細看你的程序,至少main()函數就有好幾個問題 1、函數裡面不能有 int (double,double,double)這樣的其他函數的聲明,應該放在函數外部,除了main()

Ⅲ c++無法解析的外部命令

函數就是 void main() 寫錯了,是void main()不是void mian(),如果不是主函數就是沒有添加相應的頭文件。

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用。

這句話的意思是void mian()函數在某個類中,沒有添加累的頭文件。

(3)1個無法解析的外部命令擴展閱讀:

注意事項

1、在調用外部庫的時候,出現這種問題,可能就是庫調用的方式不對,在QT中調用的時候,可以在.pro文件中加入庫,或者可以在頭文件中使用

#pragma comment(lib, 「HITP450.lib」);

2、排除了這種問題,接下來就有可能調用了沒有進行聲明的函數,檢查一下是否在頭文件中進行定義。

3、配置屬性-常規-mfc的使用,選擇為使用標准Windows庫,或者選擇在靜態庫中使用mfc,並且在程序中添加 #pragma comment (lib,"Advapi32.lib") 或者在項目-屬性-鏈接器-輸入-附加依賴項 中添加相應的庫名字,但是該庫的文件路徑最好跟當前項目的路徑是一樣的,否則需要在項目-屬性-vc++目錄-庫目錄 裡面加上該庫的目錄,否則找不到該庫

4、重要一定要確定好,lib的位數和編譯器的位數選擇是一致的。

Ⅳ C++出現 1 個無法解析的外部命令

新建項目的時候應該選控制台程序,而不是Windows程序,windows程序的入口點是winmain,控制台的是main

Ⅳ fatal error LNK1120: 1 個無法解析的外部命令

>AccountDlg.obj : error LNK2001: 無法解析的外部符號 "protected: virtual struct AFX_MSGMAP const * __thiscall CAccountDlg::GetMessageMap(void)const " (?GetMessageMap@CAccountDlg@@MBEPBUAFX_MSGMAP@@XZ)
1>E:\code\linphone\Debug\linphone.exe : fatal error LNK1120: 1 個無法解析的外部命令

Ⅵ error LNK1120: 1 個無法解析的外部命令 錯誤 1 error LNK2019: 無法解析的外部符號

重新給你調整了一下,運行通過

#include <stdio.h>
int maxmin(float *array_number, unsigned n, float *max, float *min)
{
unsigned i = 0;
for (i = 0; i<n; ++i)
{
if (*max<*(array_number + i))
{
*max = *(array_number + i);
}
if (*min>*(array_number + i))
{
*min = *(array_number + i);
}
}

return 0;
}

int input(float* array_number, unsigned n)
{
printf("輸入這個數組【10】:\n");
unsigned i = 0;
for (i = 0; i < n; ++i)
{
int d;
scanf("%d", &d);
*(array_number+i) = d;
}

return 0;
}
int average(float *array_number, unsigned n, float*aver)
{
float sum = 0.0f;
unsigned i = 0;
for (i = 0; i < n; ++i)
{
sum += *(array_number+i);
}
*aver = (float)sum / 10;

return 0;
}

int main(void)
{
float date[10] = {01};
float aver = 0.0f, max = -100000.0f, min = 100000.0f;

input(date, 10);
average(date, 10, &aver);
maxmin(date, 10, &max, &min);

printf("aver=%f", aver);
printf("max=%f,min=%f", max, min);

return 0;
}

Ⅶ vs2010 error:1個無法解析的外部命令

1)friend Typep Knapsack(Typep * ,Typew * ,Typew,int);
定義錯誤,這么不包含 Knap<Typep ,Typew >類型的參數,不能為類Knap<Typep ,Typew >的友元函數
class Object{
2) friend int Knapsack(int *,int *,int,int);
這個函數也不能是類不能為,類 Object友元函數。
所以類型template<class Typew,class Typep>
class Knap和類型class Object沒有定義,編譯不能通過;
所以 函數模板template<class Typew,class Typep>
Typep Knapsack(Typep p[],Typew w[],Typew c,int n) 編譯不能通過;
所以
函數
int __cdecl Knapsack(int *,int *,int,int)" (?Knapsack@@YAHPAH0HH@Z)沒有定義。
即main 內部的函數調用
int bestp = Knapsack(p,w,c,n);不能編譯通過,所以鏈接不了,出錯了。

Ⅷ c++, fatal error LNK1120: 1 個無法解析的外部命令

將ShowStr(const string &a)的實現寫在main函數前面,同時去掉void ShowStr(const string&a)這個函數申明。

Ⅸ 錯誤 2 error LNK1120: 1 個無法解析的外部命令

錯誤2error LNK1120: 1個無法解析的外部命令,是設置錯誤造成的,解決方法如下:

1、首先用FlashFXP或其它工具連接,打開網站根目錄,htdocs-data文件夾中找到common.inc.php文件,下載到本地。

Ⅹ C++ fatal error LNK1120: 1 個無法解析的外部命令

定義在源文件a中;
1、檢查源文件a是否有參與鏈接(如果不是命令行方式編譯的話,無視這一條應該沒事
2、檢查源文件a中關於put_message的定義,是否完全與聲明一致(函數名、返回類型、參數類型

閱讀全文

與1個無法解析的外部命令相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:577
python員工信息登記表 瀏覽:375
高中美術pdf 瀏覽:158
java實現排列 瀏覽:511
javavector的用法 瀏覽:980
osi實現加密的三層 瀏覽:230
大眾寶來原廠中控如何安裝app 瀏覽:912
linux內核根文件系統 瀏覽:241
3d的命令面板不見了 瀏覽:524
武漢理工大學伺服器ip地址 瀏覽:147
亞馬遜雲伺服器登錄 瀏覽:523
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:249
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348