What I did so far
I read the installation guide.
Installed OpenSSL library for Windows after downloading a setup file.
Downloaded and extracted a Mongo C Driver directory from GitHub.
Installed CMake for Windows after downloading from CMake web site.
Went to mongo-c-driver/src/libbson and run cmake -G "Visual Studio 14 2015 Win64" and it prints (maybe) success.
D:\works\test\mongo-c-driver\src\libbson>cmake -G "Visual Studio 14 2015 Win64"
Current version (from VERSION_CURRENT file): 1.4.0-dev
Previous release (from VERSION_RELEASED file): 1.3.5
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for _set_output_format
-- Looking for _set_output_format - not found
-- Performing Test BSON_HAVE_TIMESPEC
-- Performing Test BSON_HAVE_TIMESPEC - Success
-- struct timespec found
-- Configuring done
-- Generating done
-- Build files have been written to: D:/works/test/mongo-c-driver/src/libbson
Executed msbuild ALL_BUILD.vcxproj and prints the success.
The problem
Went to mongo-c-driver and run `cmake -G "Visual Studio 14 2015 Win64" and prints errors like this.
-- Found BSON: BSON-NOTFOUND;ws2_32
-- Found OpenSSL: optimized;D:/apps/OpenSSL-Win64/lib/VC/ssleay32MD.lib;debug;D:/apps/OpenSSL-Win64/lib/VC/ssleay32MDd.lib;optimized;D:/apps/OpenSSL-Win64/lib/VC/libeay32MD.lib;debug;D:/apps/OpenSSL-Win64/lib/VC/libeay32MDd.lib (found version "1.0.2h")
-- Searching for sasl/sasl.h
-- Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
-- Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
-- Configuring incomplete, errors occurred!
See also "D:/works/test/mongo-c-driver/CMakeFiles/CMakeOutput.log".
I looked for sasl.h from my disks but there is none. I also looked for it from OpenSSL GitHub but it does not have sasl.h
I downloaded and opened cyrus-sasl from here, but I am stuck with it. I don't know what to do with it.
How can I do the successful build of MongoDB C Driver?
It appears that the libsasl2 port to Windows is not complete. Although I did ultimately get libsasl to compile, there was no libsasl2 produced. It appears that SASL is used by MongoDB C Driver for Kerberos. I don't know if they have tried to get Kerberos working with the C Driver on Windows without a port of the libsasl2 library.
I was, however, able to get the MongoDB C Driver to ultimately compile. I initially tried to compile using subdirectories of C:\, as opposed to C:\mongo-c-driver etc., but that didn't work well, but when I compiled using the directory structure in the documentation, the compile succeeded.
To get it to compile, I disabled the SASL library in the compilation. I don't think it will be needed unless you need to use Kerberos. I initially had to explicitly disable SASL (perhaps because of using 64 bit) -- that can be done with -DENABLE_SASL=no when compiling the mongo-c-driver.
Here are the steps:
Got driver source from this page: https://github.com/mongodb/mongo-c-driver/releases (1.3.5)
Got cmake from https://cmake.org/download/
Installed cmake using the Windows installer, adding cmake to the path for all users. I had to log out and log back in to get the path to update.
Then, I copied the mongo-c-driver-1.3.5 source to c:\mongo-c-driver-1.3.5
Then,
I used the Visual Studio MSBuild Command Prompt, started with Run As Administrator
C:\mongo-c-driver-1.3.5\src\libbson>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14"
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeOutput.log".
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeError.log".
Turns out that the C compilers are not installed with a standard installation of Visual Studio, so I had to install C++ component of Visual Studio. I installed C++ Common Tools, but not MFC for C++ nor XP Support. That said it would use 3 GB of disk space (started at 39.5, ended at 37.0, so 2.5 GB used)
Once that was installed:
cd \mongo-c-driver-1.3.5\src\libbson
cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14" .
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
cd ..\..
C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- The C compiler identification is MSVC 19.0.23026.0
-- The CXX compiler identification is MSVC 19.0.23026.0
-- Check for working C compiler using: Visual Studio 14 2015
-- Check for working C compiler using: Visual Studio 14 2015 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 14 2015
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found BSON: C:/libmongoc/lib/bson-1.0.lib;ws2_32
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
-- Searching for sasl/sasl.h
-- Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
-- Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5
OpenSSL was not present, so I obtained 32 bit Win32 OpenSSL v1.0.2h from http://slproweb.com/products/Win32OpenSSL.html
Then, I installed OpenSSL. Changed installation directory to C:\work\OpenSSL-Win32, and I allowed the OpenSSL installer to install the binaries into the Windows system directory
Now,
C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- Found OpenSSL: optimized;C:/work/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/ssleay32MDd.lib;optimized;C:/work/OpenSSL-Win32/lib/VC/libeay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/libeay32MDd.lib (found version "1.0.2h")
-- Searching for sasl/sasl.h
-- Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
-- Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5
C:\mongo-c-driver-1.3.5>
msbuild.exe ALL_BUILD.vcxproj
(lots of output, with some yellow warnings, but no red errors)
msbuild.exe INSTALL.vcxproj
And now the mongo-c-driver has been built. I can use it with Visual C++ to connect to my MongoDB server using ssl.
Now, I am trying to figure out how to get Embarcadero RADStudio C++ Builder to use the new mongo-c-driver. Just copying the .dll's into the application's folder results in an abort in the bson dll. The stack trace looks like this:
There are two errors in that output.
- libbson must be installed and available
- mongoc is configured against cyrus sasl, in which case it must be installed and available
Both are easily fixable, and later versions of mongoc will no longer error if cyrus sasl or openssl isn't available, but will instead use the Windows native implementations. The driver can also be configured without them.
The available configuration options and values are:
-DENABLE_SASL=[CYRUS|SSPI|AUTO|OFF]
-DENABLE_SSL=[OPENSSL|WINDOWS|DARWIN|AUTO|OFF]
Unfortunately the cmake installation of mongoc will not automatically install the bundled libbson for you, this may be fixed in the future, but for now you need to install it seperately.
In short, to install the mongoc driver on Windows:
Download & extract mongoc (https://github.com/mongodb/mongo-c-driver/releases).
mongoc releases comes with libbson sources so no need to download them seperately.
Enter the libbson directory, "src/libbson" and then:
cd c:/path/to/mongoc/
cd src/libbson
# Configure and install libbson
cmake.exe -G "Visual Studio 14 2015 Win64" \
-DCMAKE_INSTALL_PREFIX=c:/mongoc
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj # Installs libbson
cd ../.. # Go back to the root folder of the release sources
# Configure and install mongoc
cmake.exe -G "Visual Studio 14 2015 Win64" \
-DCMAKE_INSTALL_PREFIX=c:/mongoc \
-DCMAKE_PREFIX_PATH=c:/mongoc/lib/cmake \
-DENABLE_AUTOMATIC_INIT_AND_CLEANUP:BOOL=OFF \
-DENABLE_SSL=WINDOWS \ # Use Windows Native TLS, rather then OpenSSL
-DENABLE_SASL=SSPI # Use Windows Native SSPI, rather then Cyrus SASL
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
With a current Visual Studio you can just open the project, build all and get your DLLs.
I used Community 2019
Make sure the Desktop development with C++ workload is installed, it includes CMake support
Choose Open, CMake, then select CMakeLists.txt from the root of the extracted source archive
Now you are already ready to "build all", but since the default debug build is not recommended, you should open CMake settings, use the green "+" button and select x86-Release (or x64, if required).
For Delphi users: the default DLL filenames are without the required "lib" prefix (libmongoc-1.0.dll), so edit the BSON_OUTPUT_BASENAME and MONGOC_OUTPUT_BASENAME variables accordingly.
Another hint: the Delphi installation contains the files in 2 places: bin & Redist\win32, bin64 & Redist\win64 - good luck!
1.17.0-rc0 x86 release drivers
https://gofile.io/d/0wJ4R4
Related
Windows 10, CMake 3.19.1
Im trying to compile test project with XC8 compiler, CMake and custom toolchain (third party).
Link: Toolchain repository
Toolchains quick guide says to only add two strings at top of my CMakeLists.txt.
So ive got the next CMakeLists.txt:
project(Test)
# set up the Microchip cross toolchain
set(CMAKE_TOOLCHAIN_FILE ./external/cmake-microchip/toolchain.cmake)
# set the default MCU model
set(MICROCHIP_MCU PIC18F97J60)
add_executable(main main.c)
But occasionaly, every time CMake generation output starts with:
-- Building for: Visual Studio 16 2019
-- The C compiler identification is MSVC 19.28.29333.0
-- The CXX compiler identification is MSVC 19.28.29333.0
..... more
And i havent any Makefile in the output folder.
Also im try to run CMake with -G "Unix makefiles". And makefile been generated, with wrong output and any trace of custom toolchain use.
Output been:
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Detecting C compiler ABI info
Every CMake generation try, im cleanup the output folder.
Why custom toolchain doesnt starts?
The variable CMAKE_TOOLCHAIN_FILE should be set before the first project() call:
cmake_minimum_required(VERSION <..>)
# set up the Microchip cross toolchain
set(CMAKE_TOOLCHAIN_FILE ./external/cmake-microchip/toolchain.cmake)
project(Test)
# set the default MCU model
set(MICROCHIP_MCU PIC18F97J60)
add_executable(main main.c)
When first project() call is processed, CMake automatically calls the script specified in CMAKE_TOOLCHAIN_FILE.
Note, that preferred way is to not hardcode path to the toolchain in the CMakeLists.txt but pass -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain option to the cmake.
I am a student of TU Wien and quite new in programming. I would like to install a GitHub repository (https://github.com/SICKAG/sick_safetyscanners_base) which is basically for Linux, but I asked one the of the contributors and he said it should work on windows too.
According to the README the following steps have to be done to install this the repository:
git clone https://github.com/SICKAG/sick_safetyscanners_base.git
cd sick_safetyscanners_base
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=<path to install folder> ..
make -j8
make install
Here is a list of the softwares and tools I have already installed:
Visual Studio 2022 Community (because of MSVC)
Visual Studio Code
Scoop (to install cmake and make)
Boost 1.80.0
Git
And here are all the commands which are just working fine:
git clone https://github.com/SICKAG/sick_safetyscanners_base.git
cd sick_safetyscanners_base
mkdir build
cd build
cmake -DBoost_USE_STATIC_LIBS=ON .. (-DBoost_USE_STATIC_LIBS=ON, otherwise cmake does not find boost)
The problem is in the command line "make -j8". After this command, I recieve the following message: *** No targets specified and no makefile found. Stop. I have done some research and I found out that make will not work on windows (I use windows 10).
PS C:\Users\ader\sick_safetyscanners_base> mkdir build
Directory: C:\Users\ader\sick_safetyscanners_base
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 09/11/2022 13:04 build
PS C:\Users\ader\sick_safetyscanners_base> cd build
PS C:\Users\ader\sick_safetyscanners_base\build> cmake -DBoost_USE_STATIC_LIBS=ON ..
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19043.
-- The CXX compiler identification is MSVC 19.33.31630.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Found Boost: C:/boost/boost_1_80_0 (found version "1.80.0") found components: system thread chrono atomic
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/ader/sick_safetyscanners_base/build
PS C:\Users\ader\sick_safetyscanners_base\build> make -j
make: *** No targets specified and no makefile found. Stop.
Since Make will not work, I tried the command "msbuild" in the Developer PowerShell for VS 2022, but the repository will still not be installed, because I have the following error message: command line error D8021: invalid numeric argument /Werror.
PS C:\Users\ader\sick_safetyscanners_base\build> msbuild sick_safetyscanners_base.vcxproj
MSBuild version 17.3.1+2badb37d1 for .NET Framework
Build started 09/11/2022 13:07:41.
Project "C:\Users\ader\sick_safetyscanners_base\build\sick_safetyscanners_base.vcxproj" on node 1 (default targets).
Project "C:\Users\ader\sick_safetyscanners_base\build\sick_safetyscanners_base.vcxproj" (1) is building "C:\Users\ader\
sick_safetyscanners_base\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
PrepareForBuild:
Creating directory "x64\Debug\ZERO_CHECK\".
Creating directory "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
Checking Build System
FinalizeBuildStatus:
Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "C:\Users\ader\sick_safetyscanners_base\build\ZERO_CHECK.vcxproj" (default targets).
PrepareForBuild:
Creating directory "sick_safetyscanners_base.dir\Debug\".
Creating directory "C:\Users\ader\sick_safetyscanners_base\build\Debug\".
Creating directory "sick_safetyscanners_base.dir\Debug\sick_saf.78B012DA.tlog\".
InitializeBuildStatus:
Creating "sick_safetyscanners_base.dir\Debug\sick_saf.78B012DA.tlog\unsuccessfulbuild" because "AlwaysCreate" was spe
cified.
CustomBuild:
Building Custom Rule C:/Users/ader/sick_safetyscanners_base/CMakeLists.txt
ClCompile:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\HostX64\x64\CL.exe /c /IC:\User
s\ader\sick_safetyscanners_base\include /IC:\boost\boost_1_80_0 /Zi /nologo /Wall /WX- /diagnostics:column /Od /Ob0 /
D _WINDLL /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D sick_safetyscanners_base_EXPORTS /Gm- /EHsc /R
TC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"sick_safetyscanners_base.dir\Debug\\" /Fd"sick_s
afetyscanners_base.dir\Debug\vc143.pdb" /external:W4 /Gd /TP /errorReport:queue -std=c++11 -Werror C:\Users\ader\sic
k_safetyscanners_base\src\SickSafetyscanners.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\ApplicationNameVari
ableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\ChangeCommSettingsCommand.cpp C:\Users\ader\sick_saf
etyscanners_base\src\cola2\CloseSession.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\Cola2Session.cpp C:\User
s\ader\sick_safetyscanners_base\src\cola2\Command.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\ConfigMetadata
VariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\CreateSession.cpp C:\Users\ader\sick_safetyscann
ers_base\src\cola2\DeviceNameVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\DeviceStatusVariabl
eCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\FieldGeometryVariableCommand.cpp C:\Users\ader\sick_saf
etyscanners_base\src\cola2\FieldHeaderVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\FieldSetsV
ariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\FindMeCommand.cpp C:\Users\ader\sick_safetyscanne
rs_base\src\cola2\FirmwareVersionVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\LatestTelegramV
ariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\MeasurementCurrentConfigVariableCommand.cpp C:\Us
ers\ader\sick_safetyscanners_base\src\cola2\MeasurementPersistentConfigVariableCommand.cpp C:\Users\ader\sick_safetys
canners_base\src\cola2\MethodCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\MonitoringCaseTableHeaderVa
riableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\MonitoringCaseVariableCommand.cpp C:\Users\ader\si
ck_safetyscanners_base\src\cola2\OrderNumberVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\Proj
ectNameVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\RequiredUserActionVariableCommand.cpp C:\
Users\ader\sick_safetyscanners_base\src\cola2\SerialNumberVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\
src\cola2\StatusOverviewVariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\TypeCodeVariableCommand.
cpp C:\Users\ader\sick_safetyscanners_base\src\cola2\UserNameVariableCommand.cpp C:\Users\ader\sick_safetyscanners_ba
se\src\cola2\VariableCommand.cpp C:\Users\ader\sick_safetyscanners_base\src\communication\TCPClient.cpp C:\Users\ader
\sick_safetyscanners_base\src\communication\UDPClient.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\
ParseApplicationData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseApplicationNameData.cpp C:\U
sers\ader\sick_safetyscanners_base\src\data_processing\ParseConfigMetadata.cpp C:\Users\ader\sick_safetyscanners_base
\src\data_processing\ParseData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseDataHeader.cpp C:\
Users\ader\sick_safetyscanners_base\src\data_processing\ParseDatagramHeader.cpp C:\Users\ader\sick_safetyscanners_bas
e\src\data_processing\ParseDerivedValues.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseDeviceNa
me.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseDeviceStatus.cpp C:\Users\ader\sick_safetyscan
ners_base\src\data_processing\ParseFieldGeometryData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\P
arseFieldHeaderData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseFieldSetsData.cpp C:\Users\ad
er\sick_safetyscanners_base\src\data_processing\ParseFirmwareVersion.cpp C:\Users\ader\sick_safetyscanners_base\src\d
ata_processing\ParseGeneralSystemState.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseIntrusionD
ata.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseMeasurementCurrentConfigData.cpp C:\Users\ade
r\sick_safetyscanners_base\src\data_processing\ParseMeasurementData.cpp C:\Users\ader\sick_safetyscanners_base\src\da
ta_processing\ParseMeasurementPersistentConfigData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\Par
seMonitoringCaseData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseOrderNumber.cpp C:\Users\ade
r\sick_safetyscanners_base\src\data_processing\ParseProjectName.cpp C:\Users\ader\sick_safetyscanners_base\src\data_p
rocessing\ParseRequiredUserAction.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseSerialNumber.cp
p C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseStatusOverview.cpp C:\Users\ader\sick_safetyscanner
s_base\src\data_processing\ParseTCPPacket.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseTypeCod
eData.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\ParseUserNameData.cpp C:\Users\ader\sick_safetys
canners_base\src\data_processing\TCPPacketMerger.cpp C:\Users\ader\sick_safetyscanners_base\src\data_processing\UDPPa
cketMerger.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\ApplicationData.cpp C:\Users\ader\sick_safety
scanners_base\src\datastructure\ApplicationInputs.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\Applic
ationName.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\ApplicationOutputs.cpp C:\Users\ader\sick_safe
tyscanners_base\src\datastructure\CommSettings.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\ConfigDat
a.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\ConfigMetadata.cpp C:\Users\ader\sick_safetyscanners_b
ase\src\datastructure\Data.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\DatagramHeader.cpp C:\Users\a
der\sick_safetyscanners_base\src\datastructure\DataHeader.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructur
e\DerivedValues.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\DeviceName.cpp C:\Users\ader\sick_safety
scanners_base\src\datastructure\DeviceStatus.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\FieldData.c
pp C:\Users\ader\sick_safetyscanners_base\src\datastructure\FieldSets.cpp C:\Users\ader\sick_safetyscanners_base\src\
datastructure\FirmwareVersion.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\GeneralSystemState.cpp C:\
Users\ader\sick_safetyscanners_base\src\datastructure\IntrusionData.cpp C:\Users\ader\sick_safetyscanners_base\src\da
tastructure\IntrusionDatum.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\LatestTelegram.cpp C:\Users\a
der\sick_safetyscanners_base\src\datastructure\MeasurementData.cpp C:\Users\ader\sick_safetyscanners_base\src\datastr
ucture\MonitoringCaseData.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\OrderNumber.cpp C:\Users\ader\
sick_safetyscanners_base\src\datastructure\PacketBuffer.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\
ParsedPacketBuffer.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\ProjectName.cpp C:\Users\ader\sick_sa
fetyscanners_base\src\datastructure\RequiredUserAction.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\S
canPoint.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\SerialNumber.cpp C:\Users\ader\sick_safetyscann
ers_base\src\datastructure\StatusOverview.cpp C:\Users\ader\sick_safetyscanners_base\src\datastructure\TypeCode.cpp C
:\Users\ader\sick_safetyscanners_base\src\datastructure\UserName.cpp
cl : befehlszeile error D8021: Ungültiges numerisches Argument /Werror. [C:\Users\ader\sick_safetyscanners_base\build\
sick_safetyscanners_base.vcxproj]
Done Building Project "C:\Users\ader\sick_safetyscanners_base\build\sick_safetyscanners_base.vcxproj" (default targets)
-- FAILED.
Build FAILED.
"C:\Users\ader\sick_safetyscanners_base\build\sick_safetyscanners_base.vcxproj" (default target) (1) ->
(ClCompile target) ->
cl : befehlszeile error D8021: Ungültiges numerisches Argument /Werror. [C:\Users\ader\sick_safetyscanners_base\buil
d\sick_safetyscanners_base.vcxproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.43
At this stage, I do not really know, what else should I try to get this lilbrary finally installed. My goal is to call it with #include in my C++ program.
Do you have a solution here on how to get rid of the error message and how to install this library? I think the only thing missing is this step. I would be very grateful for any suggestions.
Thank you in advance!
== UPDATE after the answer of MadScientist ==
Brief history: After installing boost, I got the following message...
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:\boost\boost_1_80_0
The following directory should be added to linker library paths:
C:\boost\boost_1_80_0\stage\lib
... but I don't know exactly where to put these paths. I'm assuming that's exactly why Cmake doesn't find Boost. This problem was solved with -DBoost_USE_STATIC_LIBS=ON.
Now, if I use the command line cmake -DBoost_USE_STATIC_LIBS=ON -G "Unix Makefiles" .., CMake fails to find Boost again.
Here is what I can see on the terminal:
PS C:\Users\ader\sick_safetyscanners_base\build> cmake -G "Unix Makefiles" -DBoost_USE_STATIC_LIBS=ON ..
-- The CXX compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Error at C:/Users/ader/scoop/apps/cmake/3.24.3/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: system thread chrono) (found version
"1.80.0")
Call Stack (most recent call first):
C:/Users/ader/scoop/apps/cmake/3.24.3/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
C:/Users/ader/scoop/apps/cmake/3.24.3/share/cmake-3.24/Modules/FindBoost.cmake:2376 (find_package_handle_standard_args)
CMakeLists.txt:11 (find_package)
-- Configuring incomplete, errors occurred!
See also "C:/Users/ader/sick_safetyscanners_base/build/CMakeFiles/CMakeOutput.log".
PS C:\Users\ader\sick_safetyscanners_base\build>
Make absolutely does work on Windows (if you install it). In fact, you can tell it works since you ran it and it worked!!
The problem is that cmake can create project files for lots of different build systems, and the default on Windows is Visual Studio, not make. So when you ran cmake you got a bunch of files that tell Visual Studio how to build your code, but no files that tell make how to build your code.
Delete the directory and unpack it again, then run cmake again and add the -G "Unix Makefiles" option to the command.
However, the option -Werror is an option to the GCC compiler. It won't work if you're trying to run the Visual Studio compiler (even if you use a makefile to build the code, it will still use the Visual Studio compiler to compile it).
My suspicion is that whomever told you that "it should work" to build this code on Windows, was overly optimistic and in fact it will require some porting effort to make this work.
Issue Error while build AWD SDK (C++) library.
I am trying to build the AWD SDK packages, and getting errors.
It seems that something is wrong with the 'automatically download' of third party tools, and the install procedure gets stalled. (maybe my IT department is blocking a port!)
This is what I'm using:
git: v1.9.9
cmake: v3.8.2
curl: v3.8.2
gcc: v6.3
Here is the output log:
-- Found Git: /grid/common/pkgs/git/latest/bin/git (found version "1.9.0")
-- TARGET_ARCH not specified; inferring host OS to be platform compilation target
-- Building AWS libraries as shared objects
-- Generating linux build config
fatal: Not a git repository: '/home/dargollo/aws/aws-sdk-cpp-master/.git'
-- Building project version: 1.7.42
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /grid/common/pkgs/gcc/v6.3.0/bin/gcc
-- Check for working C compiler: /grid/common/pkgs/gcc/v6.3.0/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /grid/common/pkgs/gcc/v6.3.0/bin/g++
-- Check for working CXX compiler: /grid/common/pkgs/gcc/v6.3.0/bin/g++ -- 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: /home/dargollo/aws/blddir/.deps
Scanning dependencies of target AwsCCommon
[ 4%] Creating directories for 'AwsCCommon'
[ 8%] Performing download step (git clone) for 'AwsCCommon'
Cloning into 'AwsCCommon'...
Cloning into 'AwsCCommon'...
Cloning into 'AwsCCommon'...
-- Had to git clone more than once:
3 times.
Question
Is it possible to bypass the automatically git download? I can download the packages individually, and copy then somewhere....
aws-c-common-master.zip
aws-c-event-stream-master.zip
aws-checksums-master.zip
The issue was related to old versions of curl, and git installed on my system.
Hit was getting sucked and not able to download. I did not find a way to build/install the AWS/SDK without using git for the 3rd party tools.
After I downloaded and built those packages, the aws sdk installation performed fine without any problem.
I have used:
curl from: https://github.com/curl/curl/tree/curl-7_63_0
git from https://github.com/git/git
with versions:
curl 7.63.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.63.0-DEV OpenSSL/1.0.1e
git version 2.20.GIT
Trying to cmake mongodb C Driver on Windows 7 and got this error:
D:\db\mongodb\mongo-cxx-driver-master\build>cmake ..
-- No build type selected, default is Release
-- Auto-configuring bsoncxx to use boost std library polyfills since C++17 is in
active and compiler is MSVC
CMake Error at src/bsoncxx/CMakeLists.txt:81 (find_package):
By not providing "Findlibbson-1.0.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"libbson-1.0", but CMake did not find one.
Could not find a package configuration file provided by "libbson-1.0"
(requested version 1.10.0) with any of the following names:
libbson-1.0Config.cmake
libbson-1.0-config.cmake
Add the installation prefix of "libbson-1.0" to CMAKE_PREFIX_PATH or set
"libbson-1.0_DIR" to a directory containing one of the above files. If
"libbson-1.0" provides a separate development package or SDK, be sure it
has been installed.
libbson is installed
Don't understand where should I set a libbson directory
this is the session of building exe file in matlab 7.1.
I think I have a problem with the compiler.
mbuild -setup
Please choose your compiler for building standalone MATLAB
applications: Would you like mbuild to locate installed compilers
[y]/n? y
Select a compiler:
[1] Microsoft Visual C++ 2008 Express in C:\Program Files (x86)\Microsoft Visual Studio 9.0
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C++ 2008 Express
Location: C:\Program Files (x86)\Microsoft Visual Studio 9.0
Are these correct [y]/n? y
*****************************************************************************
Error: Could not find the 64-bit compiler. This may indicate that the
"X64 Compilers and Tools" or the Microsoft Windows Software
Development Kit (SDK) is not installed. To build 64-bit binaries,
Microsoft Visual C++ 2008 Express Edition requires that these two
packages be properly installed.
*****************************************************************************
Trying to update options file: C:\Users\****\AppData\Roaming\MathWorks\MATLAB\R2010a\compopts.bat
From template: C:\PROGRA~1\MATLAB\R2010a\bin\win64\mbuildopts\msvc90freecompp.bat
Done . . .
>> mcc -m mainmain.m -o mainmain
Could not find the compiler "cl" on the DOS path.
Use mbuild -setup to configure your environment properly.
C:\PROGRA~1\MATLAB\R2010A\BIN\MEX.PL: Error: Unable to locate compiler.
Error: An error occurred while shelling out to mbuild (error code = 2).
Unable to build executable (specify the -v option for more information).
??? Error using ==> mcc
Error executing mcc, return status = 1 (0x1).
if the problem is with the compiler, how can I install another compiler?
I have windows 7 (64 bits) and I want that the exe file will work on windows operating system.
This is probably the result of one of two issues.
1) You don't have the Windows SDK installed (as indicated in the error message). According to this MathWorks page regarding supported compilers
Both Microsoft Visual Studio 2008 and Windows Software Development Kit (SDK) 6.1 must be installed. When installing Microsoft Visual Studio, you must choose "X64 Compilers and Tools" when installing Microsoft Visual Studio; this is not selected by default.
Now, keep in mind, this reference is for the most recent release of MATLAB, but I'm betting that this information is still relevant to your issue.
You can download the SDK here.
2) It's also possible that the compiler that you're using simply isn't supported for your release of MATLAB. See here for info on supported compilers for MATLAB 7.1.