A7lam Lover Ответов: 1

Проблема использования (hashlip++) в проекте qt


я создаю приложение для хеширования файлов с помощью (HashLib++)
но когда я тестирую (библиотеку) с помощью Qt Creator, это дает мне ошибку

вот фотография ошибок

$ Скриншот 148. png-Google Диск[^]

честно говоря, я не знаю, что делает эту ошибку
я много чего перепробовал, но безуспешно

Что я уже пробовал:

я перепробовал множество решений, но безуспешно

A7lam Lover

извините не привык к такого рода форумам
в следующий раз я точно буду осторожнее

спасибо за ваш пост
и извините за трюблы насчет фотографии...я этого не заметил
я запустил код, и он работает нормально
но возникла еще одна проблема...надеюсь, вы мне в ней поможете

ошибка, вызванная этой строкой

hashwrapper *file_hashing = new md5wrapper();
отображение этих ошибок
mainwindow.o:-1: In function `__static_initialization_and_destruction_0':error: undefined reference to `md5wrapper::md5wrapper()'error: collect2: error: ld returned 1 exit status

меня беспокоит кое-что еще.
когда я хочу сохранить синтаксис в строку компилятор выводит мне это сообщение
error: conversion from ‘std::string {aka std::basic_string}’ to non-scalar type ‘QString’ requested
например здесь
QString z1 = file_hashing->getHashFromFile(file01.toStdString());
компилятор жалуется, но если я наберу просто
file_hashing->getHashFromFile(file01.toStdString());
он не жалуется...почему это ?
кстати, я использовал библиотеку в (NetBeans IDE) & (Eclipse IDE)
и они дали мне ту же ошибку

Заранее спасибо

1 Ответов

Рейтинг:
9

Jochen Arndt

Пожалуйста, не размещайте внешние ссылки на изображения. У вас есть только несколько строк кода и сообщение об ошибке, которое можно разместить здесь.

Если бы вы это сделали, я смог бы скопировать и вставить код в свой ответ, показывая вам, как решить проблему. Но так вы получите только текстуальный ответ.

Сообщение об ошибке довольно ясно и маленькая стрелка указывает на то, что переданный аргумент file02 это и есть виновник. Следующие строки говорят вам, что есть кандидат (я должен его напечатать)!):

virtual std::string hashwrapper::getHashFromFile(std::string)

Вы проходите мимо file02 который относится к типу QFile но эта функция getHashFromFile ожидает а std::string.

Предполагая, что параметр является именем файла, вы можете использовать file01 который относится к типу QString после создания std::string от этого:
QString Z_01 = file_hashing->getHashFromFile(file01.toStdString());

[РЕДАКТИРОВАТЬ]
Я пропустил, что результат присваивается а QString Так и должно быть:
QString Z_01 = QString::fromStdString(file_hashing->getHashFromFile(file01.toStdString()));

[/РЕДАКТИРОВАТЬ]

[EDIT2]
Ответ на новый вопрос, поставленный в качестве решения:
mainwindow.o:-1: In function `__static_initialization_and_destruction_0':
error: undefined reference to `md5wrapper::md5wrapper()'
error: collect2: error: ld returned 1 exit status

Вы должны связаться с библиотекой, содержащей md5wrapper.
Для этого добавьте библиотеку в LIBS конфигурация в вашем файле проекта Qt. Смотреть также Добавление библиотек в проекты / руководство Qt Creator[^].
[РЕДАКТИРОВАТЬ]