Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
Уже была подобная ошибка, когда подключал curl/curl.h
, тогда надо было ввести в Linker -lcurl
, а-ля g++ -o test filepath -lcurl
(Mac OSX). Понимаю, что ошибка из-за того, нужно подключить библиотеку в самом линкере, но не понимаю какую именно. Вот перечень инклудов:
#include "tinyxml2.h"
#include <new> // yes, this one new style header, is in the Android SDK.
#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)
# include <stddef.h>
# include <stdarg.h>
#else
# include <cstddef>
# include <cstdarg>
#endif
tinyxml2.h
- существующий файл в проекте, если что.
Подробней ниже: main.cpp:
#include <iostream>
#include <string>
#include <tinyxml2.h>
#include <tinyxml2.cpp>
#include <curl/curl.h>
using namespace tinyxml2;
using namespace std;
static string buffer;
static int writer(char* data, size_t size, size_t nmemb, string* buffer)
{
int result = 0;
if(buffer != NULL) {
buffer->append(data, size * nmemb);
result = size * nmemb;
}
return result;
}
int main(int argc, char** argv)
{
char errorBuffer[CURL_ERROR_SIZE];
CURL* curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
curl_easy_setopt(curl, CURLOPT_URL, "https://www.cbr-xml-daily.ru/daily_eng_utf8.xml");
curl_easy_setopt(curl, CURLOPT_NOPROXY, NULL);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
res = curl_easy_perform(curl);
if(res == CURLE_OK) {
cout << "Downloaded" << endl;
} else {
cout << "error: " << errorBuffer << endl;
}
} else {
cout << "Оставьте комментарий пж";
}
curl_easy_cleanup(curl);
return 0;
}
tinixml2.cpp есть просьба загуглить ибо 2500 строк tinixml.h аналогично
То что пишет терминал:
> /bin/sh -c '/usr/bin/make -j8 -e -f Makefile'
----------Building project:[ Money - Debug ]----------
/usr/bin/llvm-g++ -o ./Debug/Money @"Money.txt" -lcurl -lncurses
duplicate symbol __ZN8tinyxml211XMLDocument8SetErrorENS_8XMLErrorEiPKcz in:
./Debug/tinyxml2.cpp.o
./Debug/main.cpp.o
duplicate symbol __ZN8tinyxml210XMLPrinter5PrintEPKcz in:
./Debug/tinyxml2.cpp.o
./Debug/main.cpp.o
duplicate symbol __ZN8tinyxml210XMLPrinter13PushAttributeEPKcx in:
./Debug/tinyxml2.cpp.o
./Debug/main.cpp.o
duplicate symbol __ZNK8tinyxml210XMLElement14Int64AttributeEPKcx in:
./Debug/tinyxml2.cpp.o
./Debug/main.cpp.o
duplicate symbol __ZN8tinyxml27XMLUtil7ToInt64EPKcPx in:
./Debug/tinyxml2.cpp.o
./Debug/main.cpp.o
ld: 227 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Debug/Money] Error 1
make: *** [All] Error 2
====1 errors, 0 warnings====
Плохо вы читали документацию. Отрывок из документации Readme.md
:
The top of tinyxml2.h even has a simple g++ command line if you are are Unix/Linux/BSD and don't want to use a build system.
g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
Вместо xmltest.cpp
пишете main.cpp
, вместо gccxmltest.exe
название будущей вашей программы.
Из main.cpp
уберите инклюд tinyxml2.cpp
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть кастомный QQuickWindow (CWindow), в котором реализованы все mouseEvent'ыТак же есть кастомный QQuickItem (CItem) в котором также есть mouseEvent'ы
Хочу выполнять цикл бесконечно если есть ошибка catch, если ошибки нету пусть цикл будет завершен
Имеется слово, допустим, Cinderella, где Ci - превратится в Si, если введенное слово - cinderella, то ci превратится в si
Если ввести не число, то выводится строка "Введите число", а потом выбрасывается исключение в строке cin >> delaySec в блоке catch: