Hello,
I'm currently trying to compile basilisk sources within windows operating system.
Here is an example :
-- Build files have been written to: C:/.conan/3fbd77/1/build_subfolder
MSBuild version 17.4.1+9a89d02ff for .NET Framework
Checking Build System
Building Custom Rule C:/.conan/3fbd77/1/source_subfolder/cmake/CMakeLists.txt
arena.cc
arenastring.cc
extension_set.cc
generated_message_table_driven_lite.cc
generated_message_util.cc
coded_stream.cc
zero_copy_stream.cc
zero_copy_stream_impl_lite.cc
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(241,50): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(242,2): message : voir la référence à l'instanciation classe modèle 'google::protobuf::hash<Key>' en cours de compilation (compilation du f
ichier source C:\.conan\3fbd77\1\source_subfolder\src\google\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,14): error C2039: 'hash_compare' n'est pas membre de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\googl
e\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\unordered_set(24,1): message : voir la déclaration de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_s
ubfolder\src\google\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,5): error C2504: 'hash_compare' : classe de base non définie (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\goo
gle\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,42): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(400,29): error C2064: le terme ne correspond pas à une fonction qui prend 1 arguments (compilation du fichier source C:\.conan\3fbd77\1\sou
rce_subfolder\src\google\protobuf\extension_set.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(241,50): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(242,2): message : voir la référence à l'instanciation classe modèle 'google::protobuf::hash<Key>' en cours de compilation (compilation du f
ichier source C:\.conan\3fbd77\1\source_subfolder\src\google\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,14): error C2039: 'hash_compare' n'est pas membre de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\googl
e\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\unordered_set(24,1): message : voir la déclaration de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_s
ubfolder\src\google\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,5): error C2504: 'hash_compare' : classe de base non définie (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\goo
gle\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,42): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(400,29): error C2064: le terme ne correspond pas à une fonction qui prend 1 arguments (compilation du fichier source C:\.conan\3fbd77\1\sou
rce_subfolder\src\google\protobuf\generated_message_table_driven_lite.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(241,50): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(242,2): message : voir la référence à l'instanciation classe modèle 'google::protobuf::hash<Key>' en cours de compilation (compilation du f
ichier source C:\.conan\3fbd77\1\source_subfolder\src\google\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,14): error C2039: 'hash_compare' n'est pas membre de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\googl
e\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\unordered_set(24,1): message : voir la déclaration de 'std' (compilation du fichier source C:\.conan\3fbd77\1\source_s
ubfolder\src\google\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,5): error C2504: 'hash_compare' : classe de base non définie (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\goo
gle\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(255,42): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(400,29): error C2064: le terme ne correspond pas à une fonction qui prend 1 arguments (compilation du fichier source C:\.conan\3fbd77\1\sou
rce_subfolder\src\google\protobuf\generated_message_util.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
message_lite.cc
repeated_field.cc
atomicops_internals_x86_gcc.cc
atomicops_internals_x86_msvc.cc
bytestream.cc
common.cc
int128.cc
io_win32.cc
C:\.conan\3fbd77\1\source_subfolder\src\google/protobuf/stubs/hash.h(241,50): error C2143: erreur de syntaxe : absence de ',' avant '<' (compilation du fichier source C:\.conan\3fbd77\1\source_subfolder\src\g
oogle\protobuf\stubs\common.cc) [C:\.conan\3fbd77\1\build_subfolder\source_subfolder\cmake\libprotobuf.vcxproj]
And it goes with all files with protobuf.
By default my conan profile is :
[settings]
os=Windows
os_build=Windows
arch=x86_64
arch_build=x86_64
compiler=Visual Studio
compiler.version=17
build_type=Release
[options]
[build_requires]
[env]
When I try to change compiler.
[settings]
os=Windows
os_build=Windows
arch=x86_64
arch_build=x86_64
compiler=clang
compiler.version=14
compiler.libcxx=libstdc++11
build_type=Release
[options]
[build_requires]
[env]
I have this error with protobuf.
protobuf/3.5.2@bincrafters/stable: Calling build()
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "C:/.conan/080bd1/1/build_subfolder/CMakeFiles/CMakeOutput.log".
protobuf/3.5.2@bincrafters/stable:
protobuf/3.5.2@bincrafters/stable: ERROR: Package 'f67ada7fd8cb6067d34a7b4246bd05be1dd86e18' build failed
protobuf/3.5.2@bincrafters/stable: WARN: Build folder C:\.conan\080bd1\1
ERROR: protobuf/3.5.2@bincrafters/stable: Error in build() method, line 62
cmake = self._configure_cmake()
while calling '_configure_cmake', line 57
cmake.configure(build_folder=self._build_subfolder)
ConanException: Error 1 while executing cd C:\.conan\080bd1\1\build_subfolder && cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE="Release" -DCONAN_IN_LOCAL_CACHE="ON" -DCONAN_COMPILER="clang" -DCONAN_COMPILER_VERSION="14" -DCONAN_CXX_FLAGS="-m64" -DCONAN_SHARED_LINKER_FLAGS="-m64" -DCONAN_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64" -DCMAKE_SHARED_LINKER_FLAGS="-m64" -DCMAKE_C_FLAGS="-m64" -DBUILD_SHARED_LIBS="ON" -DCMAKE_INSTALL_PREFIX="C:\.conan\3e4f77\1" -DCMAKE_INSTALL_BINDIR="bin" -DCMAKE_INSTALL_SBINDIR="bin" -DCMAKE_INSTALL_LIBEXECDIR="bin" -DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_INSTALL_INCLUDEDIR="include" -DCMAKE_INSTALL_OLDINCLUDEDIR="include" -DCMAKE_INSTALL_DATAROOTDIR="share" -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY="ON" -DCONAN_EXPORTED="1" -Dprotobuf_BUILD_TESTS="False" -Dprotobuf_WITH_ZLIB="False" -Dprotobuf_BUILD_PROTOBUF_LITE="False" -Wno-dev C:\.conan\080bd1\1
I don't want to use MinGW but LLVM, since Clang is installed with it.
Do you have any idea of how I can manage to pass this step ?
I also tried to do:
conan remove protobuf
pip install protobuf
but still..
By the way with linux I succeed to compile. (With Clang too).
Sorry for huge copy/paste.
Thanks in advance.
Jean-Loup