Estou criando este projeto dentro do windows, quando coloco para executar e depurar ele dá este erro, estou fazendo o ConsoleNFe. Olhei em todos os arquivos e não encontrei isto em lugar algum, o único lugar que tem e no CMakeLists, porém está dentro de uma if para identificar se é linux ou windows. Na dúvida se era no CMakeLists, já excluí todos os ifs que olham o sistema e deixei apenas do windows, porém mesmo assim ele procura pela lib.
Como faço para a depuração funcionar?
/EDITADO/
Não sei colocar print neste site, então segue o ultimo log:
"13:57:56: Running steps for project nfe...
13:57:57: Starting: "C:\Qt\Tools\CMake_64\bin\cmake.exe" --build C:/Users/loja/Documents/NFe/cpp/nfe_pPDT/build-nfe-Desktop_Qt_6_4_1_MinGW_64_bit-Debug --target all
[1/5 1.6/sec] Automatic MOC and UIC for target nfe
[2/4 0.1/sec] Building CXX object CMakeFiles/nfe.dir/main.cpp.obj
[3/4 0.2/sec] Building CXX object CMakeFiles/nfe.dir/C/Users/loja/Documents/NFe/cpp/nfe_pPDT/base_nfe.cpp.obj
[4/4 0.2/sec] Linking CXX executable nfe.exe
FAILED: nfe.exe
cmd.exe /C "cd . && C:\Qt\Tools\mingw1120_64\bin\g++.exe -DQT_QML_DEBUG -g CMakeFiles/nfe.dir/nfe_autogen/mocs_compilation.cpp.obj CMakeFiles/nfe.dir/main.cpp.obj CMakeFiles/nfe.dir/C/Users/loja/Documents/NFe/cpp/nfe_pPDT/base_nfe.cpp.obj -o nfe.exe -Wl,--out-implib,libnfe.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/CppBrasil -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/CppBrasil/NFe -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/CppBrasil/DanfeQtRPT -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/OpenSSL1.1.1q/lib -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/libxml2-v2.9.13/lib -LC:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/libiconv-for-Windows/lib64 -L C:/Users/loja/Documents/NFe/cpp/nfe_pPDT/nfe/../includes/zlib-1.2.12/lib C:/Qt/6.4.1/mingw_64/lib/libQt6Network.a -lCppNFe -llibcrypto -llibssl -llibiconv -llibxml2 -lzdll C:/Qt/6.4.1/mingw_64/lib/libQt6Core.a -lmpr -luserenv -lws2_32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lCppNFe
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
13:58:14: The process "C:\Qt\Tools\CMake_64\bin\cmake.exe" exited with code 1.
Error while building/deploying project nfe (kit: Desktop Qt 6.4.1 MinGW 64-bit)
When executing step "Build"
13:58:14: Elapsed time: 00:18."
CMakeList.txt:
"cmake_minimum_required(VERSION 3.14)
project(nfe LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
if (CMAKE_SYSTEM MATCHES "Linux")
include_directories(
../
../includes/
../includes/CppBrasil
../includes/CppBrasil/NFe
../includes/CppBrasil/DanfeQtRPT
/usr/include/libxml2
)
elseif (CMAKE_SYSTEM MATCHES "Windows")
include_directories(
../
../includes/
../includes/CppBrasil
../includes/CppBrasil/NFe
../includes/CppBrasil/DanfeQtRPT
../includes/OpenSSL1.1.1q/include
../includes/libxml2-v2.9.13/include/libxml2
../includes/libiconv-for-Windows/include
../includes/zlib-1.2.12/include
)
endif()
add_executable(nfe
main.cpp
../base_nfe.h
../base_nfe.cpp
)
install(TARGETS nfe
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
if (CMAKE_SYSTEM MATCHES "Linux")
target_link_libraries(nfe PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network -lCppNFe -lcrypto -lssl -lxml2 -lz)
elseif (CMAKE_SYSTEM MATCHES "Windows")
target_link_directories(nfe
PRIVATE ../includes/CppBrasil
PRIVATE ../includes/CppBrasil/NFe
PRIVATE ../includes/CppBrasil/DanfeQtRPT
PRIVATE ../includes/OpenSSL1.1.1q/lib
PRIVATE ../includes/libxml2-v2.9.13/lib
PRIVATE ../includes/libiconv-for-Windows/lib64
PRIVATE ../includes/zlib-1.2.12/lib
)
target_link_libraries(nfe PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network CppNFe libcrypto libssl libiconv libxml2 zdll)
endif()"
base_nfe.h:
"#ifndef BASE_NFE_H
#define BASE_NFE_H
#include <QObject>
#include <QString>
#include <QDebug>
#include <cppnfe.h>
#include <convdf.h>
#include <cpputility.h>
#include <QDir>
class base_nfe : public QObject
{
Q_OBJECT
public:
explicit base_nfe(QObject *parent = nullptr);
base_nfe();
QString currentDirectory = QDir::currentPath();
private:
CppNFe *m_nfe;
void configuration();
signals:
void errorOccurred(const QString &error);
void retWSChange(const QString &webServices);
void retStatusSevico(const QString &status);
public slots:
void onReqStatusServico();
private slots:
void onWSChange(const WebServicesNF &webServicesNF);
};
#endif // BASE_NFE_H"
base_nfe.cpp:
"#include "base_nfe.h"
base_nfe::base_nfe(QObject *parent)
: QObject{parent}, m_nfe(new CppNFe)
{
connect(m_nfe, &CppNFe::wsChange, this, &base_nfe::onWSChange);
connect(m_nfe, SIGNAL(errorOccurred(QString)), this, SIGNAL(errorOccurred(QString)));
}
base_nfe::base_nfe(){
delete m_nfe;
}
void base_nfe::configuration()
{
m_nfe->configuracoes->set_ModeloDF(ConvNF::strToModeloDF("55"));
m_nfe->configuracoes->set_VersaoNF(VersaoNF::v400);
m_nfe->configuracoes->set_VersaoQrCodeNF(VersaoQrCodeNF::v200);
m_nfe->configuracoes->set_TipoEmissao(TpEmis::Normal);
m_nfe->configuracoes->set_IdCSC("xxx");
m_nfe->configuracoes->set_CSC("yyy");
m_nfe->configuracoes->set_indicadorSincrono(IndSinc::Nao);
m_nfe->configuracoes->arquivos->set_caminhoSchema(currentDirectory + "/schermas");
m_nfe->configuracoes->arquivos->set_salvar(true);
m_nfe->configuracoes->arquivos->set_salvarLogs(true);
m_nfe->configuracoes->arquivos->set_salvarPorModelo(true);
m_nfe->configuracoes->arquivos->set_salvarPorAnoMesDia(true);
m_nfe->configuracoes->arquivos->set_caminhoSalvar(currentDirectory + "/xml.d");
m_nfe->configuracoes->certificado->set_cryptoLib(CryptoType::OpenSSL);
m_nfe->configuracoes->certificado->set_caminhoCertificado(currentDirectory + "/certificate/cetificate.pfx");
m_nfe->configuracoes->certificado->set_senhaCertificado("zzz");
m_nfe->configuracoes->certificado->addCaminhoCertificadoAC(currentDirectory + "/certificate/issues/ICP-Brasil.crt");
m_nfe->configuracoes->certificado->addCaminhoCertificadoAC(currentDirectory + "/certificate/issues/ICP-Brasilv2.crt");
m_nfe->configuracoes->certificado->addCaminhoCertificadoAC(currentDirectory + "/certificate/issues/ICP-Brasilv5.crt");
m_nfe->configuracoes->certificado->addCaminhoCertificadoAC(currentDirectory + "/certificate/issues/ICP-Brasilv10.crt");
m_nfe->configuracoes->certificado->addCaminhoCertificadoAC(currentDirectory + "/certificate/issues/ICP-Brasilv11.crt");
if(!m_nfe->configuracoes->certificado->carregarCertificado()){
qInfo() << "Erro ao carregar certificado.";
QString _err = m_nfe->configuracoes->certificado->get_error();
emit errorOccurred(_err);
}
m_nfe->configuracoes->webservices->set_httpType(HttpType::HttpQt);
m_nfe->configuracoes->webservices->set_tpAmb(TpAmb::Homologacao);
m_nfe->configuracoes->webservices->set_protocoloSSL(ConvNF::strToQSslProtocol("TlsV1_3"));
m_nfe->configuracoes->webservices->set_timeoutAssincrono(8000);
m_nfe->configuracoes->webservices->set_tentativas(3);
m_nfe->configuracoes->webservices->set_uf(UF::MG);
m_nfe->configuracoes->webservices->set_compactarAcimaDe(300);
m_nfe->configuracoes->webservices->set_verificarSslSocket(true);
}
void base_nfe::onReqStatusServico()
{
QString _status;
configuration();
m_nfe->eventos->statusServico->clear();
if(m_nfe->eventos->statusServico->get_status()){
_status = "Versao...: {" + m_nfe->eventos->statusServico->retorno->get_versao() + "}\n";
_status += "CStat....: {" + QString::number(m_nfe->eventos->statusServico->retorno->get_cStat()) + "}\n";
_status += "CUF......: {" + QString::number(m_nfe->eventos->statusServico->retorno->get_cUF()) + "}\n";
_status += "DHRecbto.: {" + CppUtil::dateTimeToStr(m_nfe->eventos->statusServico->retorno->get_dhRecbto(),
DtH::DateTimeBr) + "}\n";
_status += "TpAmb....: {" + ConvNF::tpAmbToStr(m_nfe->eventos->statusServico->retorno->get_tpAmb()) + "}\n";
_status += "VerAplic.: {" + m_nfe->eventos->statusServico->retorno->get_verAplic() + "}\n";
_status += "XMotivo..: {" + m_nfe->eventos->statusServico->retorno->get_xMotivo() + "}\n";
_status += "XObs.....: {" + m_nfe->eventos->statusServico->retorno->get_xObs() + "}\n";
_status += "DHRetorno: {" + CppUtil::dateTimeToStr(m_nfe->eventos->statusServico->retorno->get_dhRetorno(),
DtH::DateTimeBr) + "}\n";
emit retStatusSevico(_status);
}
}
void base_nfe::onWSChange(const WebServicesNF &webServicesNF)
{
QString _ws;
switch(webServicesNF){
case WebServicesNF::NFeAutorizacao : _ws = QStringLiteral("Enviando NFe / NFCe [...]") + "\n";
break;
case WebServicesNF::NFeConsultaCadastro : _ws = QStringLiteral("Consultando Cadastro [...]") + "\n";
break;
case WebServicesNF::NFeConsultaProtocolo : _ws = QStringLiteral("Consultando Protocolo [...]") + "\n";
break;
case WebServicesNF::NFeInutilizacao : _ws = QStringLiteral("Enviando Inutilização [...]") + "\n";
break;
case WebServicesNF::NFeRecepcaoEvento : _ws = QStringLiteral("Recebendo Eventos [...]") + "\n";
break;
case WebServicesNF::NFeRetAutorizacao : _ws = QStringLiteral("Recebendo Retorno da NFe/NFCe [...]") + "\n";
break;
case WebServicesNF::NFeStatusServico : _ws = QStringLiteral("Recebendo Status do Serviço [...]") + "\n";
break;
case WebServicesNF::None : _ws = QStringLiteral("Finalizando Conecção [...]") + "\n";
break;
default: _ws = QStringLiteral("[...]") + "\n";
break;
}
emit retWSChange(_ws);
}"
main.cpp:
"#include <QCoreApplication>
#include <QDebug>
#include "base_nfe.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
base_nfe nota;
QObject::connect(¬a, &base_nfe::retWSChange,
[=] (const QString &webServices) {
qInfo().noquote() << webServices;
});
QObject::connect(¬a, &base_nfe::errorOccurred,
[=] (const QString &error) {
qInfo().noquote() << error;
});
QObject::connect(¬a, &base_nfe::retStatusSevico,
[=] (const QString &status) {
qInfo().noquote() << status;
});
nota.onReqStatusServico();
return a.exec();
}"