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 :
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.
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))
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...
Merci.
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})
Partager