This is the expected behaviour.

As you already discovered, it is possible to control the compilation and link 
steps with variables as described in 
https://cmake.org/cmake/help/latest/module/CheckCXXSourceCompiles.html#module:CheckCXXSourceCompiles.

To specify, in a more clean way, link options, use preferably the variable 
CMAKE_REQUIRED_LINK_OPTIONS.

Le 24 oct. 2019 à 22:42 +0200, Michael Ellery <mellery...@gmail.com>, a écrit :
> I’ve dealt with that using something like this:
>
> set (_saved_CRL ${CMAKE_REQUIRED_LIBRARIES})
> set (CMAKE_REQUIRED_LIBRARIES “-fsanitize=address;asan")
> check_cxx_compiler_flag (-fsanitize=address COMPILER_SUPPORTS_SAN)
> set (CMAKE_REQUIRED_LIBRARIES ${_saved_CRL})
>
> the second item in CMAKE_REQUIRED_LIBRARIES is only needed when using gcc 
> which also requires a -lasan when linking (clang does not need this)
>
> > On Oct 24, 2019, at 12:47 PM, Turner, Adrian Keith via CMake 
> > <cmake@cmake.org> wrote:
> >
> > Hi CMake Mailing List,
> >
> > I am using the CHECK_CXX_COMPILER_FLAG directive in a CMake file to detect 
> > whether the compiler uses the "-fsanitize=address" compiler flag. I'm using 
> > the g++ 7.3.0 compiler which supports this flag but the 
> > CHECK_CXX_COMPILER_FLAG directive incorrectly determines that this flag is 
> > not supported.
> >
> > To test this I tried compiling the following program:
> > int main() {};
> >
> > This compiled with the following commands:
> > > g++ -fsanitize=address -c test.cpp
> > > g++ -fsanitize=address test.o -o test.exe
> >
> > And fails with the same error message as CHECK_CXX_COMPILER_FLAG when I 
> > compile with:
> > > g++ -fsanitize=address -c test.cpp
> > > g++ test.o -o test.exe
> >
> > producing the following message:
> > Undefined symbols for architecture x86_64:
> > "___asan_init", referenced from:
> > __GLOBAL__sub_I_00099_0_test.cpp in test.o
> > "___asan_version_mismatch_check_v8", referenced from:
> > __GLOBAL__sub_I_00099_0_test.cpp in test.o
> > ld: symbol(s) not found for architecture x86_64
> > collect2: error: ld returned 1 exit status
> >
> > It seems that CHECK_CXX_COMPILER_FLAG doesn't add the flag to the linking 
> > command when it tests compilation. Is this a bug with 
> > CHECK_CXX_COMPILER_FLAG or is there something I'm missing?
> >
> > Many thanks
> > Adrian Turner
> >
> >
> > --
> >
> > 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
-- 

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