Hi,

To avoid this, put link flags in ‘LINK_FLAGS’ target properly.
´target_link_libraries’ is populating ´LINK_LIBRARIES’ target property.

Le sam. 8 sept. 2018 à 01:40, Alvin Chu <chujing...@gmail.com> a écrit :

> Hi cmake team,
> I'm using cmake 3.12.1, and building a project which has cuda codes, the
> cmake file looks like,
> list(APPEND ALL_OBJECTS  $<TARGET_OBJECTS: normal_obj>)
> list(APPEND ALL_OBJECTS  $<TARGET_OBJECTS: cuda_obj>)
> add_library(lib1 SHARED ${ALL_OBJECTS})
> list(APPEND ALL_LIBRARIES -Wl,-start-group)
> list(APPEND ALL_LIBRARIES  ${SOME_LIBS})
> list(APPEND ALL_LIBRARIES -Wl,-end-group)
> target_link_libraries(lib1 ${ALL_LIBRARIES})
>
> Now for this project, cmake will generate a cmake_device_link.o, using
> the link flags in lib1, then I got error
> nvcc   fatal   : Unknown option 'Wl,-start-group'
>
> I checked cmake source code, and seems cmake doesn't check if the link
> flags in lib1 is supported by nvcc or not, and it directly passed all the
> flag to nvcc which caused the problem. Maybe this is one way to fix this
> issue.
>
> I also noticed cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules
> will check CUDA_RESOLVE_DEVICE_SYMBOLS to decide if need generate
> cmake_device_link.o or not,
> but cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules don't, I
> tried add this check in 
> cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules,
> and my build can success w/o cmake_device_link.o, so maybe this is also a
> way to fix the issue.
>
> I'm new to cmake, so if there's any better way to solve my problem, please
> let me know.
>
> Thanks.
> Alvin
> --
>
> 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
>
-- 

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

Reply via email to