1. 程式人生 > >0.c++-顯式列印、改變lib庫載入順序(/verbose:lib)

0.c++-顯式列印、改變lib庫載入順序(/verbose:lib)

今天編譯了下程式碼:提示以下錯誤,因為nafxcw.lib是MFC的,所以必須首先被編譯

1>正在連結…
1>nafxcw.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new(unsigned int)” ([email protected]@Z) 已經在 LIBCMT.lib(new.obj) 中定義
測試下,在Link–>cmd中加入/verbose:lib,檢視列印的順序:

>正在搜尋庫
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\DelayImp.lib:
1>	正在搜尋 C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\uuid.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\libcpmt.lib:
1>	正在搜尋 .\Lib_MT\log4cplusS.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\LIBCMT.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\OLDNAMES.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib\nafxcw.lib:
1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (
[email protected]
@Z) 已經在 LIBCMT.lib(new.obj) 中定義 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" ([email protected]@Z) 已經在 LIBCMT.lib(delete.obj) 中定義 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" ([email protected]
@Z) 已經在 LIBCMT.lib(new2.obj) 中定義 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" ([email protected]@Z) 已經在 LIBCMT.lib(delete2.obj) 中定義 1> 正在搜尋 C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib: 1> 正在搜尋 C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\user32.lib:

看來解決的方式就是把nafxcw.lib提前編譯,要讓它提前編譯,好的方式 就是加入依賴lib中,輸入–>附加依賴項:nafxcw.lib
再測試下:

1>正在連結...
1>正在搜尋庫
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib\nafxcw.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\DelayImp.lib:
1>	正在搜尋 C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\uuid.lib:
1>	正在搜尋 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib\libcpmt.lib:

果然第一個被編譯了,搞定


相關推薦

0.c++-列印改變lib載入順序(/verbose:lib)

今天編譯了下程式碼:提示以下錯誤,因為nafxcw.lib是MFC的,所以必須首先被編譯 1>正在連結… 1>nafxcw.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new(unsigne

C# 資料型別轉換 轉型轉型強制轉型

C# 的型別轉換有 顯式轉型 和 隱式轉型 兩種方式。 顯式轉型:有可能引發異常、精確度丟失及其他問題的轉換方式。需要使用手段進行轉換操作。 隱式轉型:不會改變原有資料精確度、引發異常,不會發生任何問題的轉換方式。由系統自動轉換。  不同型別的資料進行操作(加減乘除賦值等等),是需要

C#程式設計基礎第十課:C#中的常用資料型別轉換:隱轉換轉換Convert類轉換等

知識點:型別轉換、數值型別間的轉換、隱式型別轉換、顯式型別轉換、數值型別和string型別的轉換、Convert類轉換。 1、資料型別型別轉換 理解:從根本上說是型別鑄造,或者說是把資料從一種型別轉換為另一種型別。C#有多種資料型別,在使用各種型別的資料時,有時候需要將一種型別的資料轉換

C# 資料型別轉換 轉型轉型強制轉型

C# 的型別轉換有 顯式轉型 和 隱式轉型 兩種方式。 顯式轉型:有可能引發異常、精確度丟失及其他問題的轉換方式。需要使用手段進行轉換操作。 隱式轉型:不會改變原有資料精確度、引發異常,不會發生任何問題的轉換方式。由系統自動轉換。  不同型別的資料進行操作(加減乘除賦值等等),是需要進行 型別轉換 後,才能繼

C#】氣泡排序轉換函式及異常處理

一、普通氣泡排序: C#中常見的排序方法有:氣泡排序,快速排序,插入排序,選擇排序、堆排序以及歸併排序。雖然還沒學習過,但是也有耳聞,就先把它們先歸類。今天主要講這裡面最常見的氣泡排序。 【概念】 氣泡排序也就是講一組需要排序的數,進行從小到大,或從大到小的排列。計算機

C++類型轉換

動作 primer 我們 ble ons 出錯 blog gre rtti C++顯式類型轉換 (註:本文例程改編自《C++ Primer》) 關於類型轉換,C++保留了C語言中的類型轉換方式,並提供了4中新的類型轉換方式。《Effective C++》鼓勵我們使用新的轉換

C++ 型別轉換運算子

1、static_cast: 相當於C語言可以進行的隱式轉換。 2、reinterpret_cast: 相當於C語言不可以進行的隱式轉換。 (static_cast與reinterpret_cast結

【Oracle】PL/SQL 儲存過程 遊標遊標動態遊標

  【Oracle】PL/SQL 顯式遊標、隱式遊標、動態遊標 2013年06月17日 09:02:51 AlphaWang 閱讀數:13009更多 個人分類: 【Database】 在PL/SQL塊中執行SELECT、INSERT、DELET

C#實現介面與隱實現介面的5個不同點

顯然我們隨時都可以建立該介面的物件,但是編譯器無法得知我們所建立的物件究竟是指向該介面的哪個實現的(如果有的話),甚至即便我們沒有實現該介面也一樣可以建立該介面的物件。簡單來說就是如果我們只是建立了介面的物件,那麼編譯器就只知道這個物件是指向該介面的,至於其餘的事情他一概不知。 相關導讀:C

oracle提交提交及自動提交

1、顯式提交:用COMMIT命令直接完成的提交為顯式提交。其格式為:SQL>COMMIT; 2、隱式提交:用SQL命令間接完成的提交為隱式提交。這些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,

Selenium+Python測試元素等待--等待等待

''' 元素等待 顯示等待是針對某一個元素進行相關等待判定 隱式等待不針對某一個元素進行等待,而是全域性元素等待 --------------------------------------------- WebDriverWait--顯示等待針對元素時使用 expected

[我眼中的C#]轉換和隱轉換

上節介紹了15中基礎的變數型別,那麼這些變數之間如何轉換呢?下面我們來介紹一下。 轉換分為顯式轉換和隱式轉換,顯式轉換就是需要我們通過程式碼去控制的使其變數型別發生改變的轉換,而隱式轉換不需要我們去操

c++ 轉換中的問題

顯式轉換中的問題 auto test = (PCSTR)(String::Format("regex_match failed: \"%s\"", a_strAddress.c_str())); String::Format 返回一個String型別臨時

Selenium+Java(六)Selenium 強制等待等待隱實等待

前言 在實際測試過程中,由於網速或效能方面的原因,開啟相應的網頁後或在網頁上做了相應的操作,網頁上的元素可能不會馬上加載出來,這個時候需要在定位元素前等待一下,等元素加載出來後再進行定位,根據實際使用選擇需要的等待方式。 一、強制等待  強制等待是利用time模組的sleep方法來實現,最簡單粗暴的

java裡的鎖總結(synchronized隱LockvolatileCAS)

# 一、介紹 首先, java 的鎖分為兩類: 1. 第一類是 **synchronized** 同步關鍵字,這個關鍵字屬於隱式的鎖,是 jvm 層面實現,使用的時候看不見; 2. 第二類是在 jdk5 後增加的 **Lock** 介面以及對應的各種實現類,這屬於顯式的鎖,就是我們能在程式碼層面看

Struts2配置檔案載入順序

Struts2框架的核心是StrutsPrepareAndExecuteFilter過濾器,該過濾器有兩個功: Prepare:預處理,載入核心的配置檔案 Execute:執行,讓部分攔截器執行。 那麼StrutsPrepareAndExecuteFilter過濾器會載入哪些配置檔案

GCC編譯連結執行時查詢順序(最真實可信)

參考了不少資料,其中最靠譜是這個:http://www.mingw.org/wiki/librarypathhowto和http://www.kaizou.org/2015/01/linux-libraries/經過線上實際驗證,GCC編譯、連結、執行時庫查詢順序如下,這個順

如何建立靜態 與 使用靜態聯調製作靜態載入不上圖片的問題

如何製作靜態庫 在此博文已經寫的很好了 http://www.cnblogs.com/superhappy/archive/2013/05/27/3102629.html 如何進行聯調那? 由於本人不會使用 博文中得 截圖 所以用語言概述下把 1.、 在一個工程中加入靜態庫

靜態動態,dll檔案lib檔案,隱連結連結淺見

靜態連結、動態連結 靜態庫和動態庫分別應用在靜態連結方式和動態連結方式中,所謂靜態連結方式是指在程式執行之前完成所有的連結工作,把靜態庫一起打包合入,生成一個可執行的目標檔案(EXE檔案)。所謂

深入探索C++物件模型(九) 解構函式 (以及定義的解構函式問題解構函式Rules of Three)

  如果類沒有定義解構函式,那麼只有類中含有成員物件(或者本類的基類)擁有解構函式的情況下,編譯器才會合成一個出來,否則解構函式被視為不要,也就不需要合成。例如,如下類,雖然Point類擁有虛擬函式:class Point {  piblic:       Point(flo