manuels / cxx2rs Goto Github PK
View Code? Open in Web Editor NEWA rust-binding generator for C files
License: GNU General Public License v2.0
A rust-binding generator for C files
License: GNU General Public License v2.0
I'm getting
clang.cindex.LibclangError: libclang.so: cannot open shared object file: No such file or directory. To provide a path to libclang use Config.set_library_path() or Config.set_library_file().
libclang is on my system:
/usr/lib/llvm-3.5/lib/libclang.so
any ideas?
Happens on this code
struct foo {
float (*getBar)();
}
I call it like this:
cxx2rs foo test.h
Full output
File "/usr/local/bin/cxx2rs", line 9, in <module>
load_entry_point('cxx2rs==0.3.7', 'console_scripts', 'cxx2rs')()
File "/Library/Python/2.7/site-packages/cxx2rs/__main__.py", line 60, in main
print rustify_struct_declaration(struct)
File "/Library/Python/2.7/site-packages/cxx2rs/rustify.py", line 134, in rustify_struct_declaration
members += "\tpub %s,\n" % rustify_variable_declaration(c)
File "/Library/Python/2.7/site-packages/cxx2rs/rustify.py", line 18, in rustify_variable_declaration
rustify_type(node.type.get_canonical()))
File "/Library/Python/2.7/site-packages/cxx2rs/rustify.py", line 88, in rustify_type
res = rustify_pointer(node)
File "/Library/Python/2.7/site-packages/cxx2rs/rustify.py", line 49, in rustify_pointer
return '*mut ' + rustify_type(canonical_pointee)
File "/Library/Python/2.7/site-packages/cxx2rs/rustify.py", line 102, in rustify_type
raise Exception("Not implemented: Type=%s" % canonical_kind)
Exception: Not implemented: Type=TypeKind.FUNCTIONNOPROTO
clang version
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
Running test "function_arg.c"...
Traceback (most recent call last):
File "./cxx2rs.py", line 72, in <module>
main()
File "./cxx2rs.py", line 33, in main
index = clang.cindex.Index.create()
File "/usr/lib/python2.7/dist-packages/clang/cindex.py", line 2047, in create
return Index(conf.lib.clang_createIndex(excludeDecls, 0))
File "/usr/lib/python2.7/dist-packages/clang/cindex.py", line 141, in __get__
value = self.wrapped(instance)
File "/usr/lib/python2.7/dist-packages/clang/cindex.py", line 3357, in lib
lib = self.get_cindex_library()
File "/usr/lib/python2.7/dist-packages/clang/cindex.py", line 3388, in get_cindex_library
raise LibclangError(msg)
clang.cindex.LibclangError: /usr/lib/x86_64-linux-gnu/libclang-3.5.so.1: undefined symbol: _ZN4llvm24llvm_start_multithreadedEv. To provide a path to libclang use Config.set_library_path() or Config.set_library_file().
Traceback (most recent call last):
File "./run_tests.py", line 82, in <module>
main()
File "./run_tests.py", line 79, in main
run_test(fname_cxx)
File "./run_tests.py", line 52, in run_test
actual_output = subprocess.check_output(cmd).split()
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['./cxx2rs.py', 'cxx', '././tests/function_arg.c']' returned non-zero exit status 1
I am experimenting on Rust as an audio processing language, so I am trying to create a simple lv2 plugin.
The problem is that I am not able to process the header file to access lv2 interface, see:
This is the file: lv2.h
~/l/amp ❯❯❯ python2.7 ~/Code/cxx2rs/cxx2rs.py lv2 /usr/include/lv2.h
#![crate_type = "lib"]
#![crate_name = "ssh"]
extern crate libc;
use std::mem;
use std::collections::enum_set::CLike;
Traceback (most recent call last):
File "/home/badosu/Code/cxx2rs/cxx2rs.py", line 74, in <module>
main()
File "/home/badosu/Code/cxx2rs/cxx2rs.py", line 47, in main
print "/*\n%s*/" % stringify_function_declaration(func)
File "/home/badosu/Code/cxx2rs/stringify.py", line 21, in stringify_function_declaration
canonical_function_name(node),
File "/home/badosu/Code/cxx2rs/parser.py", line 94, in canonical_function_name
for p in parent_path(node):
File "/home/badosu/Code/cxx2rs/parser.py", line 89, in parent_path
res = parent_path(parent) + [parent]
File "/home/badosu/Code/cxx2rs/parser.py", line 86, in parent_path
if parent.spelling is None:
AttributeError: 'NoneType' object has no attribute 'spelling'
Hi,
I want to convert JVM Tool Interface header files (jdk1.7.0_79\include). There is no any lib file, just headers.
python.exe cxx2rs C:\Users...\src\jvmti.h > jvmti.rs
Traceback (most recent call last):
File "C:\Python27\lib\runpy.py", line 162, in run_module_as_main
"main", fname, loader, pkg_name)
File "C:\Python27\lib\runpy.py", line 72, in run_code
exec code in run_globals
File "C:\Python27\Lib\site-packages\cxx2rs__main.py", line 13, in
from parser import canonical_function_name
ImportError: cannot import name canonical_function_name
How do I do that?
thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.