PC上為嵌入式開發演算法時遇到的麻煩解決

2021-06-20 14:06:42 字數 1140 閱讀 4921

1,面向嵌入式的原始檔,在vs2012下除錯開發時盡量全部使用.cpp字尾,省去大量編譯麻煩,搞定之後再行改為字尾.c

2,預編譯頭 stdafx.h 衝突處理:

為能避免檔案內部使用預的預編譯檔案頭 衝突,在嵌入式環境下預編譯指令開啟使用使用預編譯頭,否則關閉。並在vs2012專案下,選擇這些檔案, 右鍵---檔案屬性---配置屬性--- c/c++ ---預編譯頭 --- 不使用預編譯頭

3,lnk2005 連線錯誤解決辦法

原文:

nafxcwd.lib(afxmem.obj) : error lnk2005: "void * __cdecl operator new(unsigned int)" (??2@yapaxi@z) 已經在 libcmtd.lib(new.obj) 中定義

nafxcwd.lib(afxmem.obj) : error lnk2005: "void __cdecl operator delete(void *)" (??3@yaxpax@z) 已經在 libcmtd.lib(dbgdel.obj) 中定義

nafxcwd.lib(afxmem.obj) : error lnk2005: "void * __cdecl operator new(unsigned int)" (??_u@yapaxi@z) 已經在 libcmtd.lib(new2.obj) 中定義

nafxcwd.lib(afxmem.obj) : error lnk2005: "void __cdecl operator delete(void *)" (??_v@yaxpax@z) 已經在 libcmtd.lib(delete2.obj) 中定義

原因:crt 庫對 new、delete 和 dllmain 函式使用弱外部鏈結。mfc 庫也包含 new、delete 和 dllmain 函式。這些函式要求先鏈結 mfc 庫,然後再鏈結 crt 庫。

解決辦法:

一種方法是強制鏈結器按照正確的順序鏈結庫。第二種方法是由您親自查詢導致問題的模組並糾正它。

1,專案--屬性 ---聯結器---輸入  

附加依賴項    空格nafxcwd.lib libcmtd.lib

忽略指定庫    空格nafxcwd.lib libcmtd.lib

2, 專案--屬性 ---聯結器---命令列 輸入: /force:multiple

嵌入式開發中QT在自己pc上的模擬配置過程

1download qt everywhere opensource src 4.7.1.tar.gz mnt mywork qt everywhere opensource src 4.7.1.tar.gz cp qt everywhere opensource src 4.7.1.tar.gzq...

嵌入式linux在DOM上的構建過程遇到的問題?

核心編譯方面問題 主機環境說明 系統用的是fedora的 核心版本是2.6.24 自己公升過級 gcc版本3.4.3 目標板要用的核心版本是2.6.2 在編譯過程出現 arch i386 kernel process.c 497 error conflicting types for switch ...

嵌入式系統的開發

一.嵌入式系統的開發過程和工具 1.開發步驟 1 需求分析與規格說明 通常包括功能部分和非功能部分,非功能部分需求主要是指效能 成本 尺寸 重量和功耗等 2 系統設計 也叫做概要設計或總體設計,根據規格說明書中系統要實現的功能,確定如何實現這些功能的硬體和軟體,即哪些功能由硬體完成,哪些功能由軟體完...