+ -
当前位置:首页 → 问答吧 → 急求解

急求解

时间:2011-12-07

来源:互联网

vs2010 中用gtest使用其他工程里的文件。其他文件中包含了mysql++程序,boos库。
我新建的gtest工程 在项目属性里包涵了 gtest的库和头文件,Boost的库和头文件,mysql的库和头文件,为什么运行gtest工程时出现 fatal error LNK1104: 无法打开文件“libboost_system-vc100-mt-sgd-1_45.lib”

1>------ 已启动生成: 项目: gtest, 配置: Release Win32 ------
1>生成启动时间为 2011/12/7 11:22:38。
1>InitializeBuildStatus:
1> 正在对“Release\gtest.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> gtest.cpp
1>LINK : fatal error LNK1104: 无法打开文件“libboost_system-vc100-mt-sgd-1_45.lib”
1>
1>生成失败。
1>
1>已用时间 00:00:03.08
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
vc++目录 

包含目录:
E:\MySQL\include
E:\mysqpp\lib
E:\boost_1_45_0
E:\gtest-1.6.0\include

库目录:
E:\mysqpp\vc2008\Debug
E:\MySQL\lib\debug
E:\boost_1_45_0\stage\lib
E:\boost_1_45_0

作者: a5131819   发布时间: 2011-12-07

你编译boos库了吗?

作者: gelinsipan   发布时间: 2011-12-07

编译了的

作者: a5131819   发布时间: 2011-12-07

这个“E:\boost_1_45_0\stage\lib”在你的VS2010的library path里吗?
“E:\boost_1_45_0\stage\lib”目录有libboost_system-vc100-mt-sgd-1_45.lib吗?

作者: gelinsipan   发布时间: 2011-12-07

可能哭路径不对。
#pragma coment(lib,"绝对路径试试")

作者: Demon__Hunter   发布时间: 2011-12-07

“E:\boost_1_45_0\stage\lib”目录有libboost_system-vc100-mt-sgd-1_45.lib吗?
 没有这个

作者: a5131819   发布时间: 2011-12-07

#pragma comment(lib,"libboost_system-vc100-mt-sgd-1_45.lib")是这个吧
编译还是一样的错

作者: a5131819   发布时间: 2011-12-07

你的配置是“Release Win32”,但是试图连接“libboost_system-vc100-mt-sgd-1_45.lib”。根据naming convention,这个库是debug的。

g using debug versions of the standard and runtime support libraries.
d building a debug version of your code

作者: gelinsipan   发布时间: 2011-12-07

1>------ 已启动生成: 项目: gtest, 配置: Debug Win32 ------
1>生成启动时间为 2011/12/7 11:58:11。
1>InitializeBuildStatus:
1> 正在对“Debug\gtest.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> gtest.cpp
1>LINK : fatal error LNK1104: 无法打开文件“libboost_system-vc100-mt-sgd-1_45.lib”
1>
1>生成失败。
1>
1>已用时间 00:00:01.40
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
用DEBUG还是一样的

作者: a5131819   发布时间: 2011-12-07

引用 5 楼 a5131819 的回复:
“E:\boost_1_45_0\stage\lib”目录有libboost_system-vc100-mt-sgd-1_45.lib吗?
没有这个

没有这个文件编译肯定过不去

作者: dahuaixiaohuai   发布时间: 2011-12-07

boost编译完后确实没这个 libboost_system-vc100-mt-sgd-1_45.lib

作者: a5131819   发布时间: 2011-12-07

1. 首先确认“E:\boost_1_45_0\stage\lib”在VS2010的library path中
2. 确认E:\boost_1_45_0\stage\lib目录下有要连接的lib文件。
3. 如果没有,估计是你build boost有问题。

作者: gelinsipan   发布时间: 2011-12-07

我之前那个工程用了boost库的,没问题。。。但是我新建gtest用来测试代码功能。库连接什么的都是一样的。。。。我把gtest     项目属性     ->     c/C++     ->   代码生成   ->   运行库   ->   多线程调试(MTD) "用这个就有问题 "   ,用       多线程调试   DLL   (/MDd)   这个有没问题   。。   但是我用gtest测试必须得用   多线程调试(MTD)。。。诶郁闷了

作者: a5131819   发布时间: 2011-12-07