2016-09-20 194 views
2

我正在嘗試在QT Creator上使用最新版本的PicklingTools(http://www.picklingtools.com/)。我只想打開與PicklingTools文件一起下載的醃製樣本文件。所以,我的main.cpp文件看起來很簡單:在QT Creator中使用PicklingTools

#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文件,但現在我不知道該怎麼做。

回答

1

OpenContainers代碼僅用作INCLUDE,也就是說,您不必鏈接任何使用JUST OpenContainers代碼(OC :: Val,OC :: Tab等)的任何東西。但!

要使用任何酸洗代碼(例如您看到的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

+0

我正在尋找這個!謝謝 –