編譯模板類時出現的錯誤
我寫了一個模板類,將類宣告和類定義分別放在了.h和.cpp,連結的時候就會出現下面的錯誤,所以要將成員函式的定義全部放在.h標頭檔案中。
main.obj : error LNK2001: unresolved external symbol "public: class LinearList<int> & __thiscall LinearList<int>::Delete(int,int &)" ([email protected][email protected]@@[email protected]@Z)
main.obj : error LNK2001: unresolved external symbol "public: bool __thiscall LinearList<int>::Find(int,int &)const " (
main.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class LinearList<int> const &)" (
[email protected][email protected]@[email protected]@@[email protected]@[email protected][email protected]@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: class LinearList<int> & __thiscall LinearList<int>::Insert(int,int const &)" (
main.obj : error LNK2001: unresolved external symbol "public: __thiscall LinearList<int>::LinearList<int>(int)" ([email protected]@@[email protected]@Z)
模版類的成員函式程式碼必須寫在h檔案中,不能寫在cpp檔案中,就這麼簡單。你可以看看STL中那麼多模版類,全部都是寫在標頭檔案中的,沒有寫在cpp中的。
因為這個涉及到編譯單元的問題,你在一個編譯單元用到的函式在另一個編譯單元不一定會被例項化。C++標準為了解決這個問題引入了export關鍵字,不過非常不好意思,常用的主流編譯器全都不支援,因此只好把模版全部寫在標頭檔案中。
相關推薦
編譯模板類時出現的錯誤
我寫了一個模板類,將類宣告和類定義分別放在了.h和.cpp,連結的時候就會出現下面的錯誤,所以要將成員函式的定義全部放在.h標頭檔案中。 main.obj : error LNK2001: unreso
解決 Maven項目進行編譯( mvn compile )時出現的錯誤
mvn alt odi 1.8 compiler style spa bubuko version 錯誤信息: 在 pom.xml 文件 設置一下Maven的屬性 1 <!--Maven 屬性--> 2 <propertie
【筆記】libjpeg的移植,make編譯時出現錯誤
問題描述: [email protected]:~/decodeporing/jpeg-6b# make./libtool --mode=compile arm-linux-gcc -O2 -I. -c ./jcapimin.c make: ./libtool:命令未找到
編譯qt工程時出現qt外掛程序退出錯誤的解決辦法
真名:朱金燦 主要經歷:本科畢業於CUG(武漢)的GIS專業,畢業後參加工作,現在在北京從事軟體開發和團隊管理工作。曾獲有色金屬工業科技進步獎二等獎(獲獎證書連結)。 我的聯絡方式: EMAIL:clever101#163.com 研究方向: 數字影象處理、計算機圖形學。 本部落格內
Spring Data Jpa + Mysql實體類自動建立表時出現錯誤
實體類Param,設定表名為vbap3_sql_param,在執行之後,出現錯誤,錯誤的建表語句如下。(資料庫是用的Mysql) create table vbap3_sql_param (id bi
用cmd命令列編譯JAVA程式時出現“找不到或無法載入主類”
檢查環境變數配置: JAVA_HOME:D:\Java\jdk1.8.0_91 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面有英文點號) Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
編譯時出現錯誤 -- clang: error: linker command failed with exit code 1 (use -v to see invocation)
出現這個錯誤的原因有多種,常見的是因為某些檔案的缺失或者是檔案的重複導致的。 這類錯誤檢視的關鍵在於其上一行的文字。 對於檔案缺少而導致錯誤的情況: 例如上圖中的示例,其上一行文字為 ld:library not found for -lrxl,可以看出是缺失了某一
使用Dev C++編譯C++工程時出現undefined reference 錯誤
我的工程包含三個檔案,Vector模板類的宣告檔案Vector.h和定義檔案Vector.cpp以及主函式main.cpp,具體程式碼如下: // Vector.h #ifndef VECTOR_H #define VECTOR_H #include <iostream>
myeclipse10集成Tomcat6時出現錯誤
src log clip tom tomcat ips 配置tomcat lips 得出 myeclipse配置Tomcat時出現錯誤:如圖 tomcat6目錄:如圖 在搜集各種資料後,最終得出結論: 在Tomcat目錄中新建temp文件夾,問題解決。 親測好使。
sql server登錄時出現錯誤233
.cn config onf tail 數據 blog 圖形界面 mic .com 同事使用SqlServer出現233錯誤。使用Microsoft SQL Server Management Studio連接1次數據庫之後,斷開再次連接,就會出現233錯誤 查看Windo
yum 下載時出現錯誤解決方法
yum1,ping www.baidu.com 驗證你是否能夠上網2,ping 223.5.5.5 ping域名不通,ping外網地址時通了,你的DNS配置有問題。3,修改DNS網卡的配置文件 如: cp /etc/sysconfig/network-scripts/ifcfg-eth0 /t
Eclipse4.7使用基礎 使用快捷鍵導包時,遇到不同包下有同名類時,出現選擇框
cli 提示 初始 win com 出現 導包 eclipse4 2-2 os :windows7 x64 jdk:jdk-8u131-windows-x64 ide:Eclipse Oxygen Release (4.7.0)
安裝vsphere client時出現“錯誤2229 無法在SQL查詢中加載表”等錯誤
錯誤2229解決辦法:請按照以下步驟繼續進行升級:找到日誌文件 %TEMP%vim-sso-msi.log搜索上次安裝期間作為緩存文件的 *.mst 文件。例如: c:\Windows \Installer\xxxxx.mst找到該 *.mst 文件並將其刪除。重新安裝vsphere client即可本文出自
PyQt5 Pyinstaller時出現錯誤Cannot find PyQt5 plugin directories
pyqt5 naconda exceptio when pytho body question http 解決 環境:anaconda+pyqt5 pyinstaller時出現錯誤Cannot find PyQt5 plugin directories 解決方法: 用原生的
VMware啟動Centos時出現錯誤Cannot open the disk 'xxxxxxx.vmdk' or one of the snapshot disks it depends on. .
每次 pan 鎖定 mic 數據 als log xxxxxx end 今天拔裝虛擬機的硬盤的時候,沒有關掉虛擬機,導致虛擬打開的時候出現:Cannot open the disk ‘xxxxxxx.vmdk‘ or one of the snapshot disk
跟後臺打印程序系統服務通訊時出現錯誤。請打開服務管理單元,確認後臺打印程序服務是否在運行。
term tab 日期 system ice 停用 blog spooler 警告 一: 問題描述: 【錯誤】 跟後臺打印程序系統服務通訊時出現錯誤。請打開服務管理單元,確認後臺打印程序服務是否在運行。事件類型:警告事件來源:TermServD
解決code first Migration 增加外鍵時出現錯誤的問題
int require name 增加 length add 刪除 ssa AR 先上模型 Comment public class Comment { [Key] public int CommentId { get; s
Python3 引入sqlite3時出現錯誤:ModuleNotFoundError: No module named '_sqlite3'
err error SQ 解決 python re 編譯安裝 簡單的 class under 在Python3 中內置了SQLite3,但是在編譯安裝完之後執行: import sqlite3 出現錯誤: ModuleNotFoundError: No module
[Spring MVC] 表單提交日期轉換問題,比如可能導致封裝實體類時400錯誤
new tac med tab mat -m bin Edito ack 三種格式的InitBinder @InitBinder//https://stackoverflow.com/questions/20616319/the-request-sent-by-the
Error:cannot import name'is_list_like' --python使用pandas_datareader時出現錯誤,解決方案
nbsp class 之前 color error: code 修復 使用 comm 1 import pandas as pd 2 pd.core.common.is_list_like = pd.api.types.is_list_like 在下行代碼之前插入