作者l8PeakNeymar (十八尖山內馬爾)
看板C_and_CPP
標題[問題] 無法將Class拆成.h跟.cpp
時間Thu Jul 19 23:31:21 2018
大家好
小弟有一個範例程式一直跑不起來 希望大家能協助
我做的事很簡單 就像下面描述的一樣簡單:
VS2010 新增一個名為 TEST 的 Win32 Console Application 專案
然後在這個專案裡面額外新增一個名為 CWin 的 Class Libraty 計畫
編譯器沒有做其他任何額外的設定
貼上所有程式碼:
// CWin.h
#pragma once
class CWin
{
public:
void nothing();
};
// CWin.cpp
#include "stdafx.h"
#include "CWin.h"
void CWin::nothing()
{
};
// TEST.cpp
#include "stdafx.h"
#include "../CWin/CWin.h"
int main()
{
CWin win1;
win1.nothing();
return 0;
}
出現錯誤訊息是:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall
CWin::nothing(void)" (?nothing@CWin@@QAEXXZ) referenced in function
_main c:\...\TEST.obj
Error 2 error LNK1120: 1 unresolved externals c:\...\TEST.exe 1
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.171.213
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1532014284.A.89D.html
推 Sidney0503: linker沒設好 僅此而已 07/19 23:35
→ l8PeakNeymar: 想請問怎麼設? 謝謝 07/19 23:37
→ james732: 看起來是連結的時候找不到你的CWin實體 07/19 23:48
推 johnpage: 大括號後面接分號? 07/20 02:38
→ petercoin: 專案上按右鍵>Properties>Linker>Input>把lib加在 07/20 08:52
→ petercoin: Additional Dependencies裡面 07/20 08:52
→ l8PeakNeymar: 我的類別是DLL 就算改成lib然後照p大方式還是失敗 07/20 09:25
→ petercoin: 你build dll之後同一個目錄內會有lib,要把那個lib加進 07/20 12:47
→ petercoin: dependency,但是還要注意lib路徑問題,也許可以用 07/20 12:48
→ petercoin: $(SolutionDir)Cwin/release/cwin.lib這樣的方式填入 07/20 12:51
→ petercoin: 不過還是要看你的檔案是產生在哪 07/20 12:51