1
그래서 나는 다음과 같은 시도에 처음으로 꿀꺽 꿀꺽에서 살펴 보았다 :Golang에서 일부 C를 제거한 이후로 SWIG가 구식이 되었습니까? 내가 <code>open-vcdiff</code>위한 이동 래퍼를 생성하기 위해 노력했습니다
godelta.swig
%module godelta
%include "include/godelta.hpp"
godelta.hpp
#include "config.h"
#include <assert.h>
#include <errno.h>
#ifdef WIN32
#include <fcntl.h>
#include <io.h>
#endif // WIN32
#include <stdio.h>
#include "google/vcdecoder.h"
#include "google/vcencoder.h"
#include "google/jsonwriter.h"
#include "google/encodetable.h"
#include "unique_ptr.h" // auto_ptr, unique_ptr
#ifndef HAS_GLOBAL_STRING
#endif // !HAS_GLOBAL_STRING
static const size_t kDefaultMaxTargetSize = 1 << 26; // 64 MB
namespace godelta {
class Godelta {
public:
Godelta();
~Godelta();
bool Encode();
bool Decode();
bool DecodeAndCompare();
int opt_buffersize;
int opt_max_target_window_size;
int opt_max_target_file_size;
private:
input file
static bool FileSize(FILE* file, size_t* file_size);
bool OpenFileForReading(const string& file_name,
const char* file_type,
FILE** file,
std::vector<char>* buffer);
bool OpenDictionary();
bool OpenInputFile() {
return OpenFileForReading(input_file_name_,
input_file_type_,
&input_file_,
&input_buffer_);
}
bool OpenOutputFile();
bool OpenOutputFileForCompare() {
return OpenFileForReading(output_file_name_,
output_file_type_,
&output_file_,
&compare_buffer_);
}
bool ReadInput(size_t* bytes_read);
bool WriteOutput(const string& output);
bool CompareOutput(const string& output);
std::vector<char> dictionary_;
UNIQUE_PTR<open_vcdiff::HashedDictionary> hashed_dictionary_;
const char* input_file_type_;
const char* output_file_type_;
string input_file_name_;
string output_file_name_;
FILE* input_file_;
FILE* output_file_;
std::vector<char> input_buffer_;
std::vector<char> compare_buffer_;
Godelta(const Godelta&); // NOLINT
void operator=(const Godelta&);
};
} // namespace godelta
Swig는 잘 작동하여 파일 godelta_wrap.cxx
, godelta_gc.c
및 godelta.go
을 생성합니다.
#include "runtime.h"
#include "cgocall.h"
오류 발생 :
godelta_gc.c:2:10: fatal error: 'runtime.h' file not found
내가 그 파일에 대한 모든 곳에서 보았다가, 심지어 GitHub의에 이동 저장소를 검색 지금 직면하고있어 문제가 포함 생성하는 점이다. 나는 Go에서 그 파일의 대체물 인 것만 찾는 것입니다. 그런데
, 내 이동 버전은 다음과 같습니다
go version go1.9 darwin/amd64
연타 :
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
그리고 꿀꺽 꿀꺽 :
주제에 어떤 통찰력이 높게 평가 될 것이다SWIG Version 3.0.12
Compiled with g++ [x86_64-apple-darwin16.7.0]
Configured options: +pcre
, 특히 이 오류없이 패키지에 go build
을 실행할 수있는 경우 :-)
무료 장기를위한 원 스톱 소스 인 "Guthub"! ... 내가 편집 하겠지만 후손을 위해이 아름다운 오타를 보존하고 싶었다;) – Thomas
아야! 내 잘못이야. 나는 Github에게 어떤 경의도 표하지 않는다 :-) – Sthe