【发布时间】:2022-10-09 17:31:50
【问题描述】:
我一直在尝试安装 bit7z 并将其正确链接到我的 C++ 代码中,因为我必须为我的实习做一项任务,即自动压缩某个目录并将压缩文件作为电子邮件发送出去。现在这封电子邮件对我来说并不有趣,因为我什至无法获得基本程序。我只是不断收到 Linker Error 2019,我不知道该怎么办了。我会提供尽可能多的信息。
我使用 Visual Studio 2019。
我的简历:
TEMPLATE = app
TARGET = aixLogger
DESTDIR = ./Debug
CONFIG += debug console
DEPENDPATH += .
MOC_DIR += .
OBJECTS_DIR += debug
UI_DIR += GeneratedFiles
RCC_DIR += GeneratedFiles
LIBS += -D:/local/aretz/Programmierung/git-workplace/aixLogger/Dependencies/bit7z/lib -lbit7z
INCLUDEPATH += D:/local/aretz/Programmierung/git-workplace/aixLogger/Dependencies/bit7z/include
include(aixLogger.pri)
我的.h
#pragma once
#include <qwidget.h>
#include <qobject.h>
#include <bit7z.hpp>
class AIXLogger : public QWidget
{
Q_OBJECT
public slots:
public:
void CompressDir();
void Execute();
};
我的.cpp
#include <QCoreApplication>
#include <string>
#include <iostream>
#include <filesystem>
#include <bit7z.hpp>
#include "main.h"
#include "bitcompressor.hpp"
namespace fs = std::filesystem;
using namespace bit7z;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::string path = "C:/Users/aretz/Downloads/test";
for (const auto& entry : fs::directory_iterator(path))
std::cout << entry.path() << std::endl;
//return a.exec();
}
void AIXLogger::CompressDir() {
try {
Bit7zLibrary lib{ L"C:/Program Files/7-Zip/7z.dll" };
//BitCompressor compressor{ lib, BitFormat::Zip };
std::vector< std::wstring > files = { L"aretz/downloads/test/test1.txt", L"aretz/downloads/test/test1.txt" };
//Zip Archiv erstellen
//compressor.compress(files, L"output_archive.zip");
//Directory zippen
//compressor.compressDirectory(L"dir/path/", L"dir_archive.zip");
}
catch (const BitException& ex) {
//irgendwas mit &ex machen
}
}
void AIXLogger::Execute() {
CompressDir();
}
我还添加了我更改的属性的图片。
Additional Dependencies
Additional Library Directories
Additional Include Directories
编辑:这是我仅使用“Bit7zLibrary lib {L”C:/Program Files/7-Zip/7z.dll”}这行得到的实际错误;:
错误 LNK2019 无法解析外部符号“public: __thiscall bit7z::Bit7zLibrary::Bit7zLibrary(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)” (?? 0Bit7zLibrary@bit7z@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) 在函数“public: void __thiscall AIXLogger::CompressDir”中引用(void)" (?CompressDir@AIXLogger@@QAEXXZ) aixLogger D:\local\aretz\Programmierung\git-workplace\aixLogger\main.obj 1
严重性代码 描述 项目文件行抑制状态 错误 LNK2019 未解析的外部符号“public: virtual __thiscall bit7z::Bit7zLibrary::~Bit7zLibrary(void)” (??1Bit7zLibrary@bit7z@@UAE@XZ) 在函数“public: void __thiscall AIXLogger::CompressDir(void)”中引用(?CompressDir@AIXLogger@@QAEXXZ) aixLogger D:\local\aretz\Programmierung\git-workplace\aixLogger\main.obj 1
【问题讨论】:
标签: c++ qt5 visual-studio-2019 7zip