相关疑难解决方法(0)

检测到'RuntimeLibrary'的不匹配

我在C:\ cryptopp中下载并提取了Crypto ++.我使用Visual Studio Express 2012来构建内部的所有项目(按照自述文件中的说明),并且所有内容都已成功构建.然后我在其他文件夹中创建了一个测试项目,并添加了cryptolib作为依赖项.之后,我添加了包含路径,因此我可以轻松地包含所有标题.当我尝试编译时,我收到有关未解析符号的错误.

为了解决这个问题,我添加C:\cryptopp\Win32\Output\Debug\cryptlib.lib了链接其他依赖项.现在我收到这个错误:

Error   1   error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj    C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(cryptlib.obj)    CryptoTest
Error   2   error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj    C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(iterhash.obj)    CryptoTest
Error   3   error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in program.obj    C:\Data\Work\C++ VS\CryptoTest\CryptoTest\cryptlib.lib(sha.obj) CryptoTest
Error   4   error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' …
Run Code Online (Sandbox Code Playgroud)

c++ hash compilation sha256 crypto++

104
推荐指数
2
解决办法
10万
查看次数

错误LNK2038:检测到'_MSC_VER'不匹配:值'1600'与CppFile1.obj中的值'1700'不匹配

我正在将我的项目从VS2010转换为VS2012.但是我在某些项目中遇到了_MSC_VER链接器错误.经过长时间浏览谷歌后,我发现问题是由于VS2010中创建的库与VS2012的链接.

如何找出导致错误的项目?我在这里引用错误:

Error   6   error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj      D:\ProjectLocation\Projectname1.lib(CppFile2.obj) Projectname2
Error   15  error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::_Facet_Register(class std::locale::facet *)" (?_Facet_Register@facet@locale@std@@CAXPAV123@@Z)  D:\ProjectLocation\Projectname1.lib(CppFile3.obj)   Projectname2
Error   13  error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj    D:\ProjectLocation\Projectname1.lib(CppFile4.obj)   Projectname2
Error   12  error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj    D:\ProjectLocation\Projectname1.lib(CppFile5.obj)   Projectname2
Error   10  error LNK2038: mismatch detected for …
Run Code Online (Sandbox Code Playgroud)

c++ msbuild visual-studio-2010 visual-c++

65
推荐指数
2
解决办法
13万
查看次数

在MS Visual C上链接到protobuf 3时出错

在Visual Studio 2013上遇到,但它可以与任何版本重现.

我从github克隆了协议缓冲库,在它上面运行了CMake-gui(我将所有内容都保留为默认值,因此它是静态版本),只构建libprotobuf(其他项目由于某种原因失败,cmd.exe错误,可能有事情要做有测试,但libprotobuf构建良好).

我的项目使用在mapbox矢量tile规范的github上找到的.proto文件生成的标题.

当我链接时,我首先有这个错误

Error 1 error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' s:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility

我尝试-D_SCL_SECURE_NO_WARNINGS在其他命令行参数中禁用它,但后来我有其他错误:

Error 1 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in main.obj S:\eiogit3\misc-projs\mapload\mapload\libprotobufd.lib(common.obj)

c++ protocol-buffers visual-studio visual-c++ visual-studio-2013

5
推荐指数
1
解决办法
3万
查看次数

导入 Protobuf 时出现 RuntimeLibrary 不匹配错误(Win64、CMake)

我有一个项目,其架构如下:

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 projects\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 io\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data.proto\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 generated\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data.pb.cc\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 data.pb.h\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 service\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.cpp\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dll_project_1\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dll_project_2\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 third_party\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 protobuf\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bin\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cmake\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 include\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 lib\n
Run Code Online (Sandbox Code Playgroud)\n

项目目录包含我的所有项目(显然):

\n
    \n
  • service是可执行项目
  • \n
  • io一个静态库,我只想编辑其中的“.proto”文件
  • \n
  • 其他项目基本上都是一些共享库
  • \n
\n

Third_party /protobuf包含此处列出的所有 protobuf 安装文件。请注意,为了安装 protobuf,我遵循了此处的所有说明(在 Debug x64 和 Release x64 中均使用 Visual Studio …

c++ cmake dynamic-linking protocol-buffers static-linking

2
推荐指数
1
解决办法
2198
查看次数