zois-tasoulas opened a new issue #11654:
URL: https://github.com/apache/arrow/issues/11654


   
https://github.com/apache/arrow/blob/8b440d1b5df4a0e58bcaa422b83e6d6ff1213b5f/cpp/cmake_modules/SetupCxxFlags.cmake#L643
   
   The line mentioned above created a linking issue when building debug flavor 
of my project, that includes dynamically linking the arrow libraries, on 
Windows. Specifically the error is described in [Linker Tools Warning 
LNK4098](https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-warning-lnk4098?view=msvc-170).
   
   The solution that worked for me was explicitly mentioning which libraries to 
exclude when building the release and debug flavor. Specifically the 
aforementioned link to the Microsoft page describes in detail which libraries 
to exclude when  linking dynamically with C run-time, i.e., `NOT 
ARROW_USE_STATIC_CRT`.
   
   Additionally, for debug flavor builds, the `/MDd` or `/MTd` options might 
need to be set explicitly. I pass that from my project configuration but I 
think it is not done explicitly within Arrow CMake files. Relevant link [Linker 
Tools Error 
LNK2001](https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2001?view=msvc-160),
 read segment "If you link to the release mode libraries when building a debug 
version [...]"
   
   Apache Arrow ticket that introduced the aforementioned CMake line change and 
dealt with the same issue: 
[ARROW-4014](https://issues.apache.org/jira/browse/ARROW-4014)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to