I'm currently working on a web server in C and I wanted to include for hashing passwords. My problem right now is that I get the error undefined reference to 'SHA1' when trying to compile. It appears to be an error with the Linker because the building seemed to work fine.
This is how I call SHA1():
SHA1(src, srcLength, hashStr);
I've simply installed OpenSSL by using apt-get install openssl
Do I somehow have to add OpenSSL to the target_link_libraries in the CMake-File?
EDIT: Sorry, I miss-typed, I installed openssl-dev, not just openssl
You need to install the development package sudo apt-get install libssl-dev which includes the necessary header files.
Related
Im trying of compile a cmake project of C code in a Raspberry Pi with Debian 10, the CMakeList.txt search for package first, when ask for 'libmosquitto' show the error:
Checking for module 'libmosquitto'
No package 'libmosquitto' found.
Already have installed this package with the command:
sudo apt-get install libmosquitto-dev
Before this, the CMake show another error for the package json-c, but after install it with apt-get install, the problem gone, but now for this library the CMake not recognize mosquitto.
locate libmosquitto.pc
and then add this path to PKG_CONFIG_PATH
export PKG_CONFIG_PATH="Actual_Path to libmosquitto.pc"
This worked for me.
I cloned this repo and then...
cd build_unix
../dist/configure
make
sudo make install
Then I go to the project I am trying to compile and run stack install I get the following...
Configuring BerkeleyDB-0.8.7...
Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2: Missing dependency on a foreign
library:
* Missing C library: db
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
This is on OSX
Rather than compiling from source, you could use homebrew:
brew install berkeley-db
On OSX, after downloading the ruby repository latest commit from github and following the instructions to build, I run make but I get the error:
Failed to configure openssl. It will not be installed.
If I run make check, I get more information.
Skipping `gem cert` tests. openssl not found.
...
`<class:TestGemRemoteFetcher>': uninitialized constant TestGemRemoteFetcher::OpenSSL (NameError)
Clearly it cannot find openssl, but I have it installed via Brew. What am I missing?
There are many answers to this sort of question out there (this, for example), but I can't seem to make any of the solutions work.
Brew install openssl library as a keg-only. Try passing path to your openssl to your build script:
./configure --with-openssl-dir="$(brew --prefix openssl)"
I am new in json and I don't know how to use but I found compare to XML json is better so, I am learning json in C programming in Ubuntu 14.0LTS.
I followed https://linuxprograms.wordpress.com/2010/05/20/install-json-c-in-linux/.
In this link, I installed libjson0 with the help of first command but when I installed libjson – debug symbols package with the help of second command which is mentioned in link then showing "E: Unable to locate package libjson0-dbg".
Also I gone through https://github.com/json-c/json-c. After cloning moved to json-c directory, in json-c directory I did sh autogen.sh then showing "autogen.sh: 2: autogen.sh: autoreconf: not found".
Why autoreconf is not works ? When I installed CppUTest and other stuffs then it works.
I also install build-essential which found in google for above problems but it can't works for me.
How can I installed cjson in a proper manner and how to use with the C-programms.
Try below commands:
$ sudo apt-get install libjson-glib-1.0-0 libjson-glib-1.0-0-dev
If you want to debug your programs and see the various steps of serializing/deserializing you can also install the libjson-glib – debug symbols package
$ sudo apt-get install libjson-glib-1.0-0-dbg
For documentation related to json-glib, you must install the following package
$ sudo apt-get install libjson-glib-1.0-0-doc
This documentation will then be available in file:///usr/share/gtk-doc/html/json-glib/index.html
Maybe your problem is related with the path.
The library is installed correctlly but you have tot tell the system where. Here a post on how to do it in Ubuntu How to set the environmental variable LD_LIBRARY_PATH in linux
I am on an up-to-date Ubuntu 12.04 system. I have unixodbc (v2.2.14 from ubuntu repos), MySQL and its relevant drivers installed. Also connected to a valid DSN. Verified by issuing isql DBName UName passwd.
I am trying to compile a C application that interacts with the database using ODBC. Almost everywhere I searched seemed to indicate that I should have "sql.h" installed somewhere. A find / -iname sql.h -print showed I don't have it.
So my question is: where is it? Did something go wrong with the install (no errors were reported though)? And what steps do you recommend? Reinstallation? Compilation from source code (the latest version?)?
You need to install the unixodbc-dev package to get the development header files.
sudo apt-get install unixodbc-dev
The -dev packages contain the require header files required to compile and build programs using these headers to make calls to the library. The library files themselves would be part of the regular package i.e. unixodbc in your case.
If you want to know which package provides a certain file, you could use apt-file:
sudo apt-file update
sudo apt-file find sql.h