[CMake] FW: Visual Studio 2017

Hendrik Sattler post at hendrik-sattler.de
Tue Sep 19 20:12:36 EDT 2017



Am 20. September 2017 01:00:58 MESZ schrieb "Thompson, KT" <kgt at lanl.gov>:
>Hi Robert,
>
>I thought I would expand my example a little - maybe I'm doing
>something really stupid that I should correct. Can you comment on why
>wsock32.lib isn't found when I run cmake from a 'clean' cmd prompt, but
>*is* found after sourcing vcvars.bat?

For libraries shipped with the compiler, you should just use -lws2_32 instead of find_library().
For Microsoft compilers, this is always ws2_32 for this library.

>----------------------------------------
>Here's my CMakeList.txt
>
>cmake_minimum_required( VERSION 3.9 )
>project( cmc CXX )
>message( "C++: ${CMAKE_CXX_COMPILER}" )
>find_library( Lib_win_winsock NAMES wsock32;winsock32;ws2_32 )
>if( EXISTS "${Lib_win_winsock}" )
>  message("Winsock found at ${Lib_win_winsock}")
>else()
>  message( FATAL_ERROR "winsock not found.")
>endif()
>
>----------------------------------------
>From a command prompt:
>
>E:\toycode\b>cmake -G "Visual Studio 15 2017" ..
>-- The CXX compiler identification is MSVC 19.11.25508.2
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- works
>-- Detecting CXX compiler ABI info
>-- Detecting CXX compiler ABI info - done
>-- Detecting CXX compile features
>-- Detecting CXX compile features - done
>C++: C:/Program Files (x86)/Microsoft Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>CMake Error at CMakeLists.txt:9 (message):
>  winsock not found.
>
>----------------------------------------
>After sourcing vcvars.bat
>
>E:\toycode\b>cmake -G "Visual Studio 15 2017" ..
>-- The CXX compiler identification is MSVC 19.11.25508.2
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual Studio/2017/Community/VC/Tools/MSVC/14.11.255
>03/bin/HostX86/x86/cl.exe
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual Studio/2017/Community/VC/Tools/MSVC/14.11.255
>03/bin/HostX86/x86/cl.exe -- works
>-- Detecting CXX compiler ABI info
>-- Detecting CXX compiler ABI info - done
>-- Detecting CXX compile features
>-- Detecting CXX compile features - done
>C++: C:/Program Files (x86)/Microsoft Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>Winsock found at C:/Program Files (x86)/Windows
>Kits/10/Lib/10.0.15063.0/um/x86/WSock32.Lib
>-- Configuring done
>-- Generating done
>
>----------------------------------------
>
>Thanks for your feedback!
>
>-kt
>
>-----Original Message-----
>From: Robert Maynard [mailto:robert.maynard at kitware.com] 
>Sent: Monday, September 18, 2017 11:58 AM
>To: Thompson, KT <kgt at lanl.gov>
>Cc: cmake at cmake.org
>Subject: Re: [CMake] FW: Visual Studio 2017
>
>From a default cmd.exe I see cmake 3.9 correctly finding VS2017 when
>specifying the VS Generator.
>
>C:\test\build>C:\support\cmake-3.9.2\bin\cmake -G "Visual Studio 15
>2017" ../src
>-- The C compiler identification is MSVC 19.11.25508.2
>-- The CXX compiler identification is MSVC 19.11.25508.2
>-- Check for working C compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- Check for working C compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- works
>-- Detecting C compiler ABI info
>-- Detecting C compiler ABI info - done
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft
>Visual
>Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/HostX86/x86/cl.exe
>-- works
>-- Detecting CXX compiler ABI info
>-- Detecting CXX compiler ABI info - done
>-- Detecting CXX compile features
>-- Detecting CXX compile features - done
>-- Configuring done
>-- Generating done
>-- Build files have been written to: C:/test/build
>
>On Mon, Sep 18, 2017 at 10:49 AM, Thompson, KT <kgt at lanl.gov> wrote:
>> Robert,
>>
>> That certainly doesn't work for me - but maybe I'm doing something
>non-standard.
>>
>> If I don't source the vcvarsall.bat file, SDK installations
>(c:\Program Files (x86)\Windows Kits\... and c:\Program Files
>(x86)\Microsoft SDKs\...) are not found by CMake.
>>
>> -kt
>>
>> -----Original Message-----
>> From: Robert Maynard [mailto:robert.maynard at kitware.com]
>> Sent: Monday, September 18, 2017 8:17 AM
>> To: Thompson, KT <kgt at lanl.gov>
>> Cc: cmake at cmake.org
>> Subject: Re: [CMake] FW: Visual Studio 2017
>>
>> You shouldn't need to import VS17 vcvarsall to use the VS17
>Generator,
>> that should only be needed if using the MSYS or Ninja generators.
>>
>> As far as building from the command line, the easiest route is to use
>> cmake --build <path to build directory>  --config <cfg>
>>
>> On Fri, Sep 15, 2017 at 3:05 PM, Thompson, KT <kgt at lanl.gov> wrote:
>>> Randy,
>>>
>>> Miroslav's recommendation should work. To expand on his response,
>here are the commands that I use with VS2017 to allow cmake to run from
>the command line:
>>>
>>> - Start cmd session (should also work via powershell)
>>> - To import VS17's command line environment run "C:\Program Files
>(x86)\Microsoft Visual
>Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
>>> - Add extra project specific environment variables (possibly
>including appending PATH with the location of cmake).
>>>
>>> I created a batch file that does these steps for me (and a shortcut
>on my desktop that runs the batch file).
>>>
>>> @echo off
>>> rem cmake-with-vs17-env.bat
>>> @call "C:\Program Files (x86)\Microsoft Visual
>Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 %*
>>> set PATH=%PATH%;c:\MinGW\bin;C:\Program Files\CMake\bin;C:\Program
>Files\doxygen\bin;c:\Python27amd64
>>> rem set CMAKE_PREFIX_PATH=<whatever>
>>>
>>> With this environment, I can run cmake from the command line
>(cmake-gui or cmake). I can generate "Visual Studio 15 2017" or "MSYS
>Makefiles" projects and I can build them with or w/o the GUI.
>>>
>>> I hope this helps!
>>>
>>> -kt
>>>
>>>
>>> -----Original Message-----
>>> From: CMake [mailto:cmake-bounces at cmake.org] On Behalf Of Mateju
>Miroslav, Ing.
>>> Sent: Friday, September 15, 2017 6:15 AM
>>> To: Randy Heiland <randy.heiland at gmail.com>; cmake at cmake.org
>>> Subject: Re: [CMake] Visual Studio 2017
>>>
>>> Hello Randy,
>>>
>>> From: CMake [mailto:cmake-bounces at cmake.org] On Behalf Of Randy
>Heiland
>>> Sent: Friday, September 15, 2017 1:38 PM
>>>
>>>> Is there a "best way" to use cmake for VS17 (but same cakelists for
>Linux)? And by "best", I mean with minimal effort on users.
>>>> To be more specific, on Windows, I *think* I'd like to have users
>install the cmake binary, then use Powershell to build an application.
>>> Is there really a need for using PowerShell if you also want to use
>the same CMakeLists for Linux?
>>>
>>>> But my initial attempt to do so is confusing. I install VS17 (for
>C++), it installs in standard path, but 'cl' is not found in
>Powershell. I read that I shouldn't edit my PATH (nor do I really want
>users to have to), but run some .bat instead to setup my env. So, how
>should one specify the compiler for cmake? Oh yes, then I see that VS17
>also has its own cmake??
>>>
>>>
>>> Have you run CMake successfully yet? I am not really aware how it
>works but CMake *can* for sure detect VS in my CLI environment without
>having VS in PATH. If you use an IDE that understands CMake (like VS17
>or Qt Creator, for example), you should be able to open a CMake project
>in the IDE and build it there. Please report your particular problem if
>it does not work for you.
>>> If you prefer to run cl.exe in CLI, then vcvarsall.bat is the .bat
>file you are looking for.
>>>
>>> Best regards,
>>>
>>> Ing. Miroslav Matějů
>>> Programmer Analyst
>>>
>>> AŽD Praha s.r.o.
>>> Technology Division
>>> Research and Development
>>> Žirovnická 2/3146, 106 17  Prague
>>> Czech Republic
>>> Phone: +420 267 287 476
>>> Web: www.azd.cz
>>> --
>>>
>>> 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:
>>> http://public.kitware.com/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:
>>> http://public.kitware.com/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:
>http://public.kitware.com/mailman/listinfo/cmake

-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.


More information about the CMake mailing list