-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
What version of OR-Tools and what language are you using?
Version: commit 948edc5
Language: C++
What operating system (Linux, Windows, ...) and version?
Windows10
What did you do?
I am part of the MSVC testing team at Microsoft. We build popular open source projects to test the compiler for any issues. During our regular update of recent commits, we found that when building OrTools under Asan Option, encountered the following error, causing the build to fail:
"C:\gitP\google\or-tools\build_amd64\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj" (default target) (274) ->
cl : command line warning D9025: overriding '/GS' with '/GS-' [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(22,58): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; us
e an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(42,70): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; us
e an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(43,72): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; us
e an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(98,58): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; us
e an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(138,58): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; u
se an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(139,72): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; u
se an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
C:\gitP\google\or-tools\build_amd64\_deps\protobuf-src\upb_generator\cmake\google\protobuf\compiler\plugin.upb_minitable.c(140,73): warning C5287: operands are different enum types 'upb_FieldMode' and 'upb_LabelFlags'; u
se an explicit cast to silence this warning [C:\gitP\google\or-tools\build_amd64\_deps\protobuf-build\protoc-gen-upb_minitable.vcxproj]
"C:\gitP\google\or-tools\build_amd64\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\gitP\google\or-tools\build_amd64\ortools\algorithms\algorithms_dense_doubly_linked_list_test.vcxproj" (default target) (95) ->
"C:\gitP\google\or-tools\build_amd64\ortools.vcxproj" (default target) (103) ->
(Link target) ->
LINK : fatal error LNK1189: library limit of 65535 objects exceeded [C:\gitP\google\or-tools\build_amd64\ortools.vcxproj]
LINK : fatal error LNK1189: library limit of 65535 objects exceeded [C:\gitP\google\or-tools\build_amd64\ortools.vcxproj]
6123 Warning(s)
2 Error(s)
Steps to reproduce the behavior:
- git clone https://github.com/google/or-tools.git
- mkdir build_amd64 && cd build_amd64
- cmake .. -G "Visual Studio 17 2022" -A x64 -DBUILD_DEPS=ON
- msbuild /m /p:Platform=ARM64EC /p:Configuration=Release ortools.sln /t:Rebuild
- See error
What did you expect to see
A successful build of the OR‑Tools C++ libraries without linker errors.
What did you see instead?
The build completes compilation of all object files but fails at the final link step with:
LINK : fatal error LNK1189: library limit of 65535 objects exceeded [C:\gitP\google\or-tools\build_amd64\ortools.vcxproj]
Anything else we should know about your project / environment
- This happens when building the default ALL_BUILD target on Windows/x64 with VS2022.
-The object‑count limit in MSVC static libraries appears to have been exceeded by the aggregate number of OR‑Tools object files.
-Full verbose build log is available upon request.