Поэтому я открыл файл protobuf.sln в Visual Studio 2012 и щелкнул Build Solution (он находится в режиме выпуска). Я получаю следующие ошибки:
7>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6003: The specified task executable "CL.exe" could not be run. The process cannot access the file 'C:\Users\Kels\protobuf-2.6.0\vsprojects\Release\cl.write.1.tlog' because it is being used by another process.
9>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(172,5): error MSB6006: "cmd.exe" exited with code 3.
8>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(172,5): error MSB6006: "cmd.exe" exited with code 3.
В инструкции из буферов протокола Google написано:
Чтобы избежать конфликтов между отладкой MSVC и временем выполнения выпуска
библиотеках, при компиляции отладочной сборки вашего приложения вы можете
нужно связать с отладочной сборкой libprotobuf.lib. Так же,
релизные сборки должны ссылаться на релизные библиотеки.
Это вызывает проблему? Если так, как я могу связать с отладочной сборкой libprotobuf.lib?
Спасибо!
ОБНОВИТЬ
Это мой вывод сейчас. С ошибками. Все еще с этой проблемой!
1>------ Rebuild All started: Project: libprotobuf, Configuration: Debug Win32 ------
2>------ Rebuild All started: Project: gtest, Configuration: Debug Win32 ------
3>------ Rebuild All started: Project: libprotobuf-lite, Configuration: Debug Win32 ------
2> gtest-all.cc
3> stringprintf.cc
1> stringprintf.cc
3> zero_copy_stream_impl_lite.cc
1> zero_copy_stream_impl_lite.cc
1> zero_copy_stream_impl.cc
3> zero_copy_stream.cc
3> wire_format_lite.cc
1> zero_copy_stream.cc
1> wire_format_lite.cc
3> repeated_field.cc
1> wire_format.cc
3> atomicops_internals_x86_msvc.cc
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1299,5): warning MSB8012: TargetPath(C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf/Debug\gtest.lib) does not match the Library's OutputFile property value (C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf\Debug\gtestd.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1301,5): warning MSB8012: TargetName(gtest) does not match the Library's OutputFile property value (gtestd). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
2> gtest.vcxproj -> C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf/Debug\gtest.lib
4>------ Rebuild All started: Project: gtest_main, Configuration: Debug Win32 ------
4> gtest_main.cc
1> unknown_field_set.cc
3> once.cc
1> tokenizer.cc
1> text_format.cc
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1299,5): warning MSB8012: TargetPath(C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf/Debug\gtest_main.lib) does not match the Library's OutputFile property value (C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf\Debug\gtest_maind.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1301,5): warning MSB8012: TargetName(gtest_main) does not match the Library's OutputFile property value (gtest_maind). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
3> message_lite.cc
4> gtest_main.vcxproj -> C:\Users\Kels\protobuf-2.6.1\gtest\msvc\protobuf/Debug\gtest_main.lib
3> generated_message_util.cc
1> substitute.cc
3> extension_set.cc
1> strutil.cc
3> common.cc
1> structurally_valid.cc
1> service.cc
3> coded_stream.cc
1> repeated_field.cc
3> Generating Code...
3>c:\users\kels\protobuf-2.6.1\src\google\protobuf\extension_set.cc(74): warning C4715: 'google::protobuf::internal::`anonymous namespace'::is_packable' : not all control paths return a value
1> reflection_ops.cc
3>coded_stream.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
3> Creating library Debug\libprotobuf-lite.lib and object Debug\libprotobuf-lite.exp
3> libprotobuf-lite.vcxproj -> C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\libprotobuf-lite.dll
1> printer.cc
1> parser.cc
1> atomicops_internals_x86_msvc.cc
1> once.cc
1> message_lite.cc
1> Generating Code...
1> Compiling...
1> message.cc
1> importer.cc
1> strtod.cc
1> gzip_stream.cc
1> generated_message_util.cc
1> generated_message_reflection.cc
1> extension_set_heavy.cc
1> extension_set.cc
1> dynamic_message.cc
1> descriptor_database.cc
1> descriptor.pb.cc
1> descriptor.cc
1> common.cc
1> coded_stream.cc
1> Generating Code...
1>c:\users\kels\protobuf-2.6.1\src\google\protobuf\extension_set.cc(74): warning C4715: 'google::protobuf::internal::`anonymous namespace'::is_packable' : not all control paths return a value
1>coded_stream.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
1> Creating library Debug\libprotobuf.lib and object Debug\libprotobuf.exp
1> libprotobuf.vcxproj -> C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\libprotobuf.dll
5>------ Rebuild All started: Project: libprotoc, Configuration: Debug Win32 ------
5> python_generator.cc
5> java_string_field.cc
5> java_shared_code_generator.cc
5> java_service.cc
5> java_primitive_field.cc
5> java_name_resolver.cc
5> java_message_field.cc
5> java_message.cc
5> java_lazy_message_field.cc
5> java_helpers.cc
5> java_generator_factory.cc
5> java_generator.cc
5> java_file.cc
5> java_field.cc
5> java_extension.cc
5> java_enum_field.cc
5> java_enum.cc
5> java_context.cc
5> cpp_string_field.cc
5> cpp_service.cc
5> Generating Code...
5> Compiling...
5> cpp_primitive_field.cc
5> cpp_message_field.cc
5> cpp_message.cc
5>c:\users\kels\protobuf-2.6.1\src\google\protobuf\compiler\cpp\cpp_message.cc(692): warning C4065: switch statement contains 'default' but no 'case' labels
5> cpp_helpers.cc
5> cpp_generator.cc
5> cpp_file.cc
5> cpp_field.cc
5> cpp_extension.cc
5> cpp_enum_field.cc
5> cpp_enum.cc
5> plugin.pb.cc
5> plugin.cc
5> zip_writer.cc
5> subprocess.cc
5> command_line_interface.cc
5> code_generator.cc
5> java_doc_comment.cc
5> Generating Code...
5>java_doc_comment.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
5>LINK : fatal error LNK1181: cannot open input file 'C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\libprotobuf.lib'
6>------ Rebuild All started: Project: protoc, Configuration: Debug Win32 ------
7>------ Rebuild All started: Project: test_plugin, Configuration: Debug Win32 ------
7> file.cc
6> main.cc
6>LINK : fatal error LNK1104: cannot open file 'C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\libprotobuf.lib'
8>------ Rebuild All started: Project: lite-test, Configuration: Debug Win32 ------
8>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppClean.targets(75,5): warning : The process cannot access the file 'C:\USERS\KELS\PROTOBUF-2.6.1\VSPROJECTS\DEBUG\VC110.PDB' because it is being used by another process.
8>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppClean.targets(75,5): warning : The process cannot access the file 'C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\vc110.idb' because it is being used by another process.
8>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppClean.targets(75,5): warning : The process cannot access the file 'C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\vc110.pdb' because it is being used by another process.
7> mock_code_generator.cc
8> Generating unittest_lite.pb.{h,cc}...
8> The system cannot find the path specified.
8> Generating unittest_import_lite.pb.{h,cc}...
8> The system cannot find the path specified.
8> Generating unittest_import_public_lite.pb.{h,cc}...
8> The system cannot find the path specified.
8>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(172,5): error MSB6006: "cmd.exe" exited with code 3.
7> test_plugin.cc
7> Generating Code...
7>LINK : fatal error LNK1104: cannot open file 'C:\Users\Kels\protobuf-2.6.1\vsprojects\Debug\libprotobuf.lib'
9>------ Rebuild All started: Project: tests, Configuration: Debug Win32 ------
9> Generating cpp_test_bad_identifiers.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_custom_options.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_embed_optimize_for.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_import.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_import_public.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_lite_imports_nonlite.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_mset.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_optimize_for.pb.{h,cc}...
9> The system cannot find the path specified.
9> Generating unittest_no_generic_services.pb.{h,cc}...
9> The system cannot find the path specified.
9>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(172,5): error MSB6006: "cmd.exe" exited with code 3.
========== Rebuild All: 4 succeeded, 5 failed, 0 skipped ==========
Задача ещё не решена.