[英]Using PicklingTools with QT Creator
我正在尝试将最新版本的 PicklingTools ( http://www.picklingtools.com/ ) 与 QT Creator 一起使用。 我只想打开我与 PicklingTools 文件一起下载的腌制示例文件。 所以我的 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
目前我收到多个未定义的参考错误:
- 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 等)。 但!
要使用任何P2TopLevelLoadVal
代码(例如您看到的P2TopLevelLoadVal
、 MakeVector
等的未定义条目),您需要针对 ptools 库构建和链接。 该库包含所有 Python 酸洗代码。
% 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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.