[CMake] Trouble with CMAKE_EXE_LINKER_FLAGS not honored

Bryan Christ bryan.christ at gmail.com
Wed Jun 5 13:21:40 EDT 2019


Tom,

That was a really helpful tip.  At least as far as building goes, I've
ported my app.  Now on to debugging the system nuances.

Ty!

On Wed, Jun 5, 2019 at 12:13 PM Tom Finegan <tomfinegan at google.com> wrote:

>
> On Wed, Jun 5, 2019 at 9:29 AM Bryan Christ <bryan.christ at gmail.com>
> wrote:
>
>> Tom,
>>
>> I'll give that a try.  Can that variable be changed after project() is
>> called?
>>
>
> Yes, you should be able to change it at any point in your CMake script(s).
>
> Remember that CMAKE_<linker type>_LINKER_FLAGS will effect all targets.
> Restricting your settings changes to the targets for which they are
> intended is usually better than touching variables like
> CMAKE_SHARED_LINKER_FLAGS.  You may have better results using
> target_link_libraries() to set your flags.
>
>
>>
>> On Tue, Jun 4, 2019 at 5:24 PM Tom Finegan <tomfinegan at google.com> wrote:
>>
>>> I think you want CMAKE_SHARED_LINKER_FLAGS:
>>>
>>>
>>> https://cmake.org/cmake/help/latest/variable/CMAKE_SHARED_LINKER_FLAGS.html
>>>
>>> You can also use target_link_libraries to pass linker flags:
>>>
>>> https://cmake.org/cmake/help/latest/command/target_link_libraries.html
>>>
>>> On Tue, Jun 4, 2019 at 1:12 PM Bryan Christ <bryan.christ at gmail.com>
>>> wrote:
>>>
>>>> For building my project on Linux with gcc I set the following.
>>>>
>>>> set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
>>>> -Wl,--no-as-needed")
>>>>
>>>> Later, if, the system appears to be OSX, I change it:
>>>>
>>>> if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
>>>>
>>>>     set(CMAKE_EXE_LINKER_FLAGS "-Wl,-undefined -Wl,dynamic_lookup")
>>>>     set(CMAKE_PREFIX_PATH /usr/local/opt/ncurses)
>>>>
>>>> endif()
>>>>
>>>> However, when creating the shared object, linking fails.  The flags are
>>>> not being passed to clang as expected.  When I dive into
>>>> CMakeFile/vterm-shared.dir/link.txt I confirm that the wrong flags are
>>>> there.
>>>>
>>>> What am I doing wrong?
>>>>
>>>> --
>>>> Bryan
>>>> <><
>>>> --
>>>>
>>>> Powered by www.kitware.com
>>>>
>>>> Please keep messages on-topic and check the CMake FAQ at:
>>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>>
>>>> Kitware offers various services to support the CMake community. For
>>>> more information on each offering, please visit:
>>>>
>>>> CMake Support: http://cmake.org/cmake/help/support.html
>>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> https://cmake.org/mailman/listinfo/cmake
>>>>
>>>
>>
>> --
>> Bryan
>> <><
>>
>

-- 
Bryan
<><
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190605/2cd06e1f/attachment.html>


More information about the CMake mailing list