I have a project that uses arrow and parquet. I downloaded and built the required libraries, and then successfully built my library. Now I want to migrate it to use conan, to simplify the build process.
The problem I'm facing is that most if not all the prebuilt binaries of arrow don't include parquet, at least for Windows.
This probably means that conan would download the recipe and build it. However, once I add parquet to my conanfile.txt, I get errors
Here's my conanfile.txt
[requires]
arrow/2.0.0
rapidjson/cci.20200410
catch2/2.13.6
[generators]
cmake
[options]
arrow:shared=False
arrow:parquet=True
These are the errors I get when I use conan install
>conan install ..
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=14
os=Windows
os_build=Windows
[options]
[build_requires]
[env]
WARN: thrift/0.13.0: requirement boost/1.76.0 overridden by arrow/2.0.0 to boost/1.74.0
WARN: libevent/2.1.12: requirement openssl/1.1.1j overridden by thrift/0.13.0 to openssl/1.1.1k
ERROR: Permission denied for user: 'None'. [Remote: bincrafters:]
From the error, I'm assuming that the recipe has some version conflicts and can't continue, and that I need to do something like Using override, but I don't know how to effectively do this.
Other answers, including one in a very similar question assume that updating conan to the latest would fix this, but I already updated to version 1.38, to no avail.
Any hints?
EDIT 1:
First thing I found is that my remotes.json is outdated, pointing to bincrafters. This may indeed be the thing that is breaking my build. I'll post what I found later
First thing I found is that my remotes.json is outdated, pointing to bincrafters. This may indeed be the thing that is breaking my build. I'll post what I found later
Yes, you are right. This information and action was shared here: https://bincrafters.github.io/2020/04/19/infrastructure-changes-and-required-actions/
From the error, I'm assuming that the recipe has some version conflicts and can't continue, and that I need to do something like Using override, but I don't know how to effectively do this.
As all recipes are updated manually, so version conflicts occur from time to time. The correct fix for your problem is documented here: https://docs.conan.io/en/latest/faq/troubleshooting.html#error-incompatible-requirements-obtained-in-different-evaluations-of-requirements
Besides that, you can open an issue requesting for version update here: https://github.com/conan-io/conan-center-index/issues
I thought I'd document my findings since the information was not easy to come by:
First,
ERROR: Permission denied for user: 'None'. [Remote: bincrafters:]
This signaled that the remotes.json has a bad configuration. bincrafters is no longer around, but conan does a full stop if can't reach one of the remotes (the configuration was created by someone else a few years ago, and it is custom because it points also to company repositories).
Second:
Once the first error was cleared, the second answer was somewhat obvious:
I updated my conanfile.txt to force my recipe to use the latest boost and openssl (and therefore bypass the version conflict)
[requires]
arrow/2.0.0
rapidjson/cci.20200410
catch2/2.13.6
boost/1.76.0
openssl/1.1.1k
[generators]
cmake
[options]
arrow:shared=False
arrow:parquet=True
arrow:with_snappy=True
and then proceeded to install the conan dependencies, building the missing one:
conan install .. --build=arrow
Related
Trying to compile the quick start example for GRPC.
It produces these errors:
CMake Error at /home/priya/grpc/examples/cpp/cmake/common.cmake:101 (find_package):
Could not find a package configuration file provided by "Protobuf" with any
of the following names:
ProtobufConfig.cmake
protobuf-config.cmake
Add the installation prefix of "Protobuf" to CMAKE_PREFIX_PATH or set
"Protobuf_DIR" to a directory containing one of the above files. If
"Protobuf" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
CMakeLists.txt:24 (include)
I have tried all the proposed solutions for this on other similar questions but to no avail. These are the solutions that did not work for me:
Changing find_package(protobuf CONFIG REQUIRED) to an uppercase find_package(Protobuf REQUIRED)
Installing pkg-config
This thread
I could not find any other solutions. Any help would be greatly appreciated.
So the problem is I am new with bash scripts. I had copied and pasted the instructions in quick start into a bash script so that we could integrate the gRPC repository into our repo smoothly without having to build manually each time.
This problem was caused by incorrectly calling the script, which meant the environment variable for the install directory was never getting set correctly and was remaining an empty value. You must put source before calling the file, e.g source ./grpcSetup.sh. Please read this other stackoverflow question that explains the problem more clearly.
It's likely to be caused by lack of submodules in the gRPC repo, I guess. Would you get submodules before build? You can run git clone --recurse-submodules -b v1.38.0 https://github.com/grpc/grpc for it, as an example.
Have you compiled and installed grpc before?
I get this cmake error today and I run make install in the directory of builded grpc and it works now.
While installing GRPC, a variable is set that points to installation folder of GRPC.
mkdir -p $MY_INSTALL_DIR
mkdir -p $MY_INSTALL_DIR
If we change name MY_INSTALL_DIR to other, then that has to changed in CMakeList.txt file , hence error. To avoid and to keep it simple just use same name as mentioned in documentation.
I found many articles about the what I am about to ask but no precise answer. I wanted to compile a main file from a RSA library. However, this error appears and I don't know how to fix it:
The error in the image indicates that there's no such file or directory as ${workspaceFolder}boost/multiprecision/cpp_int.hpp.
The file boost/multiprecision/cpp_int.hpp is part of the Boost C++ Libraries. If Boost is not installed, as indicated in the comments above, it will be necessary to install Boost to provide the missing file and any related software to which it refers.
For information on installing Boost, take a look at the Boost Getting Started page.
Note that if you are using Linux, Boost is likely available in your system's repository (i.e. package manager, software manager, or whatever it's called on your system). If so, installing from there would probably be the easiest way to go.
If Boost did happen to be installed and the error was occuring, it would then be necessary to add the location of the Boost include files to the compilation command.
I'm trying to build cpp-netlib 0.12.0 stable in Ubuntu 18.04, but when I get to running
$ make -j4
I get a lot of errors, such as:
error: ‘SSL_R_SHORT_READ’ was not declared in this scope
ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)
Google told me this was because the make variables -DOPENSSL_INCLUDE_DIR and -DOPENSSL_SSL_LIBRARY need to be defined. However, I can't find the directories/libraries I need to set them to. Examples give /usr/lib/openssl-1.0 and /usr/include/openssl-1.0, but I can't find anything like those, even though I have the latest version of openssl installed through apt-get.
My /usr/include directory contains the folder 'openssl', but usr/lib doesn't have even that, only 'openssh', which doesn't appear to contain anything relevant.
How can I fix this?
Fixed by cloning latest version from git repository and building from that.
I have CMake working perfectly fine with Visual Studio 2015. I wanted to try VS Code with C++ and CMake extensions, but when I try to call the build command (configured to F7 by default with the CMake extension for VSCode), I only get the message:
command 'cmake.build' not found
Is it trying to tell me it can't find CMake ? Because Cmake is installed and working so... I also tried changing in the settings to the full path to cmake with no success. I installed both CMake and CMake Tools from Extensions. Also the toolbar for CMake doesn't appear on the blue VSCode toolbar as shown in CMake Tools extension doc.
Edit:
The author of that extension believes they've resolved this issue in the latest version 0.9.7.
https://github.com/vector-of-bool/vscode-cmake-tools/issues/157#issuecomment-307005140
So, I've just pushed 0.9.7:
No more dependency on twxs.cmake, so that shouldn't be causing any
issues anymore
#ytimenkov fixed some version parsing code that was
lying about what version of CMake was installed. Should fix issues
people are seeing with pre-3.7 versions.
#ytimenkov added better
errors when initialization failed. This should help create future
tickets!
As such, I'm going to close this issue and ask that anyone
with any further issues open a new ticket using the new error messages
that appear during a failed initialization.
I too had this issue and was given a solution here in my ticket.
For some people, one of their dependencies isn't getting installed correctly on our system. So you need to install another additional extension to get it to work.
It's called "CMake" or "twxs.cmake" (actual package name) and can be found here: https://marketplace.visualstudio.com/items?itemName=twxs.cmake
If it still isn't working, some have reported that they needed to uninstall both extensions then reinstall them both to get it to work--making sure to restart VSCode.
try this:
create a new copy of "mingw32-make.exe".
rename the copy to "make.exe".
restart your vscode.
Well I've recently come out of the dark ages and upgraded my GCC from 3.4.4 to 4.5.0 with Cygwin (I use Netbeans 6.8 on Windows for future reference). I tried testing the new compiler by attempting to run a simple program through it. The run failed however, citing that NetBeans "cannot find -lstdc++".
Interesting.
I look in ...
C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.0
...where libstdc++.a, libstdc++.dll.a, libstdc++.la, libsupc++.a, and libsupc++.la are supposed to be (they're in that spot in the 3.4.4 folder), and they're not there. I also notice something else: there's a 4.3.4 folder in...
C:\cygwin\lib\gcc\i686-pc-cygwin
which contains these exact files! Good. So I copy them in to the 4.5.0 folder and try to run the program again. This time i'm getting two other errors:
build/Debug/Cygwin-Windows/extract_fail_operations.o:/usr/lib/gcc/i686-pc-cygwin/4.5.0/include/c++/bits/stl_list.h:1435: undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
and:
build/Debug/Cygwin-Windows/extract_fail_operations.o:/usr/lib/gcc/i686-pc-cygwin/4.5.0/include/c++/bits/stl_list.h:1451: undefined reference to `std::_List_node_base::_M_unhook()'
At this point I figured that I was way over my head and decided to come for help before copying and pasting any more files. If anyone could tell me how to get this working, i'd be really appreciative.
(If any solutions involve the command line, please be warned that i'm not well versed in it... you may have to provide extra details that you wouldn't need to to other SO users!)
EDIT: The PATH variables are as follows:
C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\Program Files\CVSNT\;C:\cygwin\bin
And yes, the Cygwin installed is the latest from the site.
You need to install version 4.5.0 of libstdc++6-devel.