gpt4 book ai didi

c++ - 在 QT Creator 中使用 PicklingTools

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:08 25 4
gpt4 key购买 nike

我正在尝试将最新版本的 PicklingTools ( http://www.picklingtools.com/ ) 与 QT Creator 一起使用。我只想打开一个与 PicklingTools 文件一起下载的 pickled 示例文件。所以我的 main.cpp 文件看起来非常基本:

#include <iostream>
#include "chooseser.h"

using namespace std;

int main()
{
Val result;
LoadValFromFile("../PicklingTools163Release/C++/SamplePickles/p7.pkl",result,SERIALIZE_P0);
return 0;
}

我按以下方式编辑了 .pro 文件:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp \

INCLUDEPATH += ../PicklingTools163Release/C++/
INCLUDEPATH += ../PicklingTools163Release/C++/opencontainers_1_8_4/include/

LIBS += -pthread

HEADERS += \
../PicklingTools163Release/C++/chooseser.h \

QMAKE_CXXFLAGS += -std=c++0x -pthread
QMAKE_CXXFLAGS += -fno-strict-aliasing -DLINUX_ -DOC_NEW_STYLE_INCLUDES -Wno-deprecated -I../PicklingTools163Release/C++/opencontainers_1_8_4/include -I../PicklingTools163Release/C++ -pthread -D_REENTRANT

目前我收到多个 undefined reference 错误:

 - Fehler: undefined reference to `OC::CopyPrintableBufferToVector(char const*, unsigned long, char*, unsigned long)'
- Fehler: undefined reference to `OC::P2TopLevelLoadVal(OC::Val&, char*)'
- Fehler: undefined reference to `OC::OpalLoadSomeTable(OC::Val&, char*, bool, OC::MachineRep_e)'
- Fehler: undefined reference to `OC::CopyPrintableBufferToVector(char const*, unsigned long, char*, unsigned long)'
- Fehler: undefined reference to `OC::MakeVector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, char const*, unsigned long)'

我想我需要进一步编辑 .pro 文件,但现在我不知道该怎么做。

最佳答案

OpenContainers 代码仅作为 INCLUDE 工作,即,您无需链接任何内容即可仅使用 OpenContainers 代码(OC::Val、OC::Tab 等)。但是!

要使用任何 Pickling 代码(比如您在 P2TopLevelLoadValMakeVector 等中看到的未定义条目),您需要构建并链接到 ptools 库。该库包含所有 Python pickle 代码。

% cd /home/me/PicklingTools163Release/C++
% make -f Makefile.Linux libptools.so
# .... builds a lot of files, and put them into libptools.so ....
# Update your Makefile to link against libptools.so

希望对您有所帮助。链接到您的 Makefile 中的 libptools.so

关于c++ - 在 QT Creator 中使用 PicklingTools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com