[ 
https://issues.apache.org/jira/browse/ARROW-15298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Li updated ARROW-15298:
-----------------------------
    Summary: [C++] Linking error for debug build on Windows  (was: Linking 
error for debug build on Windows)

> [C++] Linking error for debug build on Windows
> ----------------------------------------------
>
>                 Key: ARROW-15298
>                 URL: https://issues.apache.org/jira/browse/ARROW-15298
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>         Environment: Windows 10
>            Reporter: Zois Tasoulas
>            Priority: Major
>              Labels: Windows, build, cmake, cpp, debug, linking, msvc
>
> I experienced a linking error while building the debug flavor of the project 
> I am working on, that links dynamically 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 issue stems from the following CMake line, 
> [arrow/cpp/cmake_modules/SetupCxxFlags.cmake|https://github.com/apache/arrow/blob/8b440d1b5df4a0e58bcaa422b83e6d6ff1213b5f/cpp/cmake_modules/SetupCxxFlags.cmake#L643].
> The solution that worked in my case was to explicitly mention which libraries 
> to exclude when building the release and debug flavor, following the table at 
> [Linker Tools Warning 
> LNK4098|https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-warning-lnk4098?view=msvc-170].
>  Specifically the aforementioned link to the Microsoft page describes in 
> detail which libraries to exclude when linking dynamically with C run-time, 
> i.e.,
> {code:bash}
> NOT ARROW_USE_STATIC_CRT{code}
> .
> Additionally, for debug flavor builds, the /MDd or /MTd options might need to 
> be set explicitly. I pass that from my project's 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



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to