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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.