Installation d'une librairie
bonjour,
Je programme avec Code::Blocks 16.01 en C++ sous kubuntu.
Je souhaite utiliser cette librairie téléchargeable sur cette page https://github.com/voidloop/krakenapi
Lorsque je compile main.cpp j'ai les erreurs suivantes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| -------------- Build: Debug in Bitcoin (compiler: GNU GCC Compiler)---------------
g++ -Wall -fexceptions -g -c /home/morgatte/CodeBlock/krakenapi-master/main.cpp -o obj/Debug/main.o
g++ -o bin/Debug/Bitcoin obj/Debug/main.o
obj/Debug/main.o*: Dans la fonction «*main*»*:
/home/morgatte/CodeBlock/krakenapi-master/main.cpp:13*: référence indéfinie vers «*curl_global_init*» <------------- bibliothèque cURL
....
...
...
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
1 error(s), 0 warning(s) (0 minute(s), 1 second(s)) |
Pour la ligne d'erreur concernant cURL j'ai trouvé la solution car j'utilisais déjà cURL pour d'autres projets et la librairie est déjà installée sur mon ordi.
MENU --> Projet --> Build options... --> Linker Settings --> Other linker options : -lcurl
Mais pour la bibliothèque qui m'intéresse justement j'ai encore ces erreurs. Comment l'installer ?
Code:
1 2 3 4 5 6 7 8 9
| g++ -o bin/Debug/Bitcoin obj/Debug/main.o -lcurl
obj/Debug/main.o*: Dans la fonction «*main*»*:
/home/morgatte/CodeBlock/krakenapi-master/main.cpp:16*: référence indéfinie vers «*Kraken::KAPI::KAPI()*»
/home/morgatte/CodeBlock/krakenapi-master/main.cpp:21*: référence indéfinie vers «*Kraken::KAPI::public_method(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const*»
/home/morgatte/CodeBlock/krakenapi-master/main.cpp:16*: référence indéfinie vers «*Kraken::KAPI::~KAPI()*»
/home/morgatte/CodeBlock/krakenapi-master/main.cpp:16*: référence indéfinie vers «*Kraken::KAPI::~KAPI()*»
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) |
En aparté :
Je ne sais pas vraiment à quoi ni comment utiliser le fichier cMakeLists.txt, mais je pense qu'il n'est pas là pour rien...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| cmake_minimum_required (VERSION 2.6)
project (KRAKENAPI)
add_definitions("-std=c++11")
#-------------------------------------------------------------------------------
IF (CMAKE_CXX_COMPILER_ID STREQUAL Clang)
add_definitions("-Wno-tautological-compare")
ENDIF()
#-------------------------------------------------------------------------------
IF (APPLE)
set (CMAKE_MODULE_LINKER_FLAGS "-Wl,-flat_namespace -Wl,-undefined -Wl,suppress")
ENDIF (APPLE)
#-------------------------------------------------------------------------------
IF (POLICY CMP0043)
cmake_policy(SET CMP0043 OLD)
ENDIF()
#-------------------------------------------------------------------------------
# Control CMAKE_BUILD_TYPE, default: Debug
#-------------------------------------------------------------------------------
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE "Debug" CACHE string "Build type" FORCE)
endif (NOT CMAKE_BUILD_TYPE)
message (STATUS "Build type: " ${CMAKE_BUILD_TYPE})
#-------------------------------------------------------------------------------
# Find OpenSSL
#-------------------------------------------------------------------------------
find_package (OpenSSL REQUIRED)
include_directories (${OPENSSL_INCLUDE_DIR})
list(APPEND LIBS ${OPENSSL_LIBRARIES})
#-------------------------------------------------------------------------------
# Find CURL
#-------------------------------------------------------------------------------
find_package (CURL REQUIRED)
include_directories (${CURL_INCLUDE_DIR})
list(APPEND LIBS ${CURL_LIBRARIES})
#-------------------------------------------------------------------------------
# Add library kapi (krakenapi)
#-------------------------------------------------------------------------------
aux_source_directory(kraken KAPI_FILES)
add_library (kapi STATIC ${KAPI_FILES})
# set some properties when CMAKE_BUILD_TYPE is "Debug"
set_target_properties (kapi PROPERTIES
COMPILE_DEFINITIONS_DEBUG "JSON_DEBUG;JSON_SAFE;JSON_ISO_STRICT"
DEBUG_POSTFIX "d")
list (INSERT LIBS 0 kapi)
#-------------------------------------------------------------------------------
# Add library libjson
#-------------------------------------------------------------------------------
set (LIBJSON_SOURCE_DIR ${CMAKE_HOME_DIRECTORY}/libjson/_internal/Source)
aux_source_directory (${LIBJSON_SOURCE_DIR} LIBJSON_SOURCE_FILES)
add_library (libjson STATIC ${LIBJSON_SOURCE_FILES})
# remove "lib" prefix from the name of the libjson archive
set_target_properties (libjson PROPERTIES PREFIX "")
# set some properties when CMAKE_BUILD_TYPE is "Debug"
set_target_properties (libjson PROPERTIES
COMPILE_DEFINITIONS_DEBUG "JSON_DEBUG;JSON_SAFE;JSON_ISO_STRICT"
DEBUG_POSTFIX "d")
list (APPEND LIBS libjson)
#-------------------------------------------------------------------------------
# Add the executable 'kph'
#-------------------------------------------------------------------------------
add_executable (kph kph.cpp)
set_target_properties (kph PROPERTIES
COMPILE_DEFINITIONS_DEBUG "JSON_DEBUG;JSON_SAFE;JSON_ISO_STRICT")
target_link_libraries (kph ${LIBS})
#-------------------------------------------------------------------------------
# Add the executable 'krt'
#-------------------------------------------------------------------------------
add_executable (krt krt.cpp)
set_target_properties (krt PROPERTIES
COMPILE_DEFINITIONS_DEBUG "JSON_DEBUG;JSON_SAFE;JSON_ISO_STRICT")
target_link_libraries (krt ${LIBS}) |
Merci.