织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 基础技术 > C/CPP专题 >

LINK:fatal error LNK1104: cannot open file 'libc.lib'

落鹤生 发布于 2013-05-09 14:30 点击:次 
今天,用VS2008编译我的一个MFC程度时报错LINK : fatal error LNK1104: cannot open file 'libc.lib'
TAG:

LINK:fatal error LNK1104: cannot open file 'libc.lib'

今天,用VS2008编译我的一个MFC程度时报错:

LINK : fatal error LNK1104: cannot open file 'libc.lib'

而这程序的是这样的:
1. 一个我自己封装的tinyxml的静态库;
2. 一个MFC的程序,其中会去调用前面封装好的静态库;

由于类似的状况,在以前VC 6.0里开发时也经常会碰到,所以我的做法是直接把libc.lib在Project Setting里ignore掉。
但是结果报错如下:

util_RsXML.lib(XMLParser.obj) : error LNK2019: unresolved external symbol "private: void __thiscall CXMLParser::splitString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > &)" (?splitString@CXMLParser@@AAEXABV?$basic_string@DU?$char_traits@D@std@@ V?$allocator@D@2@@std@@AAV?$vector@V?$basic_string@DU?$char_traits@D@ std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@ D@std@@V?$allocator@D@2@@std@@@2@@3@@Z) referenced in function "public: void __thiscall CXMLParser::Generate(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *)" (?Generate@CXMLParser@@QAEXABV?$basic_string@DU?$char_traits@ D@std@@V?$allocator@D@2@@std@@PBD@Z)

奇了怪了,VC 9.0就是不一样,于是只好到网上搜一下,后来做了如下修改后终于成功:

解决办法,在Project-->Setting-->Linker-->Command Line-->Additional options中加入:  /nodefaultlib:libc

-----------------------------------------------------------------------

以下是网上看到的与此问题类似的一些状况及解决办法:

今天,用VS2008编译一个C++语言的程序,修改完所有错误后,出现了如下的错误:

MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

在网上搜了一下,做如下修改:
Project -> xxxx Properties -> Configuration Properties -> Linker -> System ->Console ,原来是/subsystem:windows,这里改为(/SUBSYSTEM:CONSOLE)。
修改后, 该问题解决。

一,问题描述
error LNK2001: unresolved external symbol _WinMain@16
debug/main.exe:fatal error LNK 1120:1 unresolved externals
error executing link.exe;

二,产生这个问题可能的原因
1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.

2. 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。

三, 解决方法
如果入口函数是WinMain,

1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS

2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.

3.保存设置,Rebuild All.

如果入口函数是main,做反向的修改。

四,VS2005中的设置

1.菜单中选择 Project->Properties, 弹出Property Pages窗口

2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.

3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)

4.Rebuild All. Ok

(罗索客)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/200912/8077.html]
本文出处:罗索工作室 作者:罗索客
顶一下
(9)
90%
踩一下
(1)
10%
------分隔线----------------------------
相关文章
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容