[Samba] VFS module and C++

Laurent Pinchart laurent.pinchart at skynet.be
Fri Mar 2 11:29:55 GMT 2007


> I have found solution, it is necessary to add -lstdc++ to the linker.
> Also good idea is to check and increase log level in smb.conf

That would be done automatically if you used g++ instead of gcc.

Laurent Pinchart

> >Hi
> >I need to write a simple VFS module and I have to use C++ instead of C.
> >I took sample files, compiled it and everything does work. However, when
> >I compile it as C++, during the runtime I can see errors in the log:
> >Can't find a vfs module.
> >I am not experienced C or C++ programmer in linux environment, probably
> >I do some silly mistake, but I am really stucked now. I am using Samba
> >version 3.0.23a. Thanks for any help.
> >Roman
> >
> >The fragment of the code looks like this:
> >
> >extern "C" {
> > #include "includes.h"
> >};
> >
> ># skeleton methods, tuples are there...
> >
> >extern "C" {
> >NTSTATUS init_module(void)
> >{
> >        DEBUG(2,("Inicialization does work"));
> >        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "mytest_vfs",
> >skel_op_tuples);
> >}
> >};
> >
> >
> >And my Makefile:
> >CC              = gcc
> >CFLAGS          = -g -O2
> >CPPFLAGS        =
> >LDFLAGS         =
> >LDSHFLAGS       = -shared
> >INSTALLCMD      = /usr/bin/install -c
> >SAMBA_SOURCE    = ../../source
> >SHLIBEXT        = so
> >OBJEXT          = o
> >FLAGS           = $(CFLAGS) -Iinclude -I$(SAMBA_SOURCE)/include
> >-I$(SAMBA_SOURCE)/popt -I$(SAMBA_SOURCE)/smbwrapper  -I. $(CPPFLAGS)
> >-I$(SAMBA_SOURCE) -I/home/roman/ace/ACE_wrappers/TAO/tao -fPIC
> >
> >
> >prefix          = /usr/local/samba
> >libdir          = ${prefix}/lib
> >
> >VFS_LIBDIR      = $(libdir)/vfs
> >
> ># Auto target
> >default: $(patsubst %.cpp,%.$(SHLIBEXT),$(wildcard *.cpp))
> >
> ># Pattern rules
> >
> >%.$(SHLIBEXT): %.$(OBJEXT)
> >        @echo "Linking $@"
> >        @$(CC) $(LDSHFLAGS) $(LDFLAGS) -o $@ $<
> >
> >%.$(OBJEXT): %.cpp
> >        @echo "Compiling $<"
> >        @$(CC) $(FLAGS) -c $<
> >
> >
> >install: default
> >        $(INSTALLCMD) -d $(VFS_LIBDIR)
> >        $(INSTALLCMD) -m 755 *.$(SHLIBEXT) $(VFS_LIBDIR)
> >
> ># Misc targets
> >clean:
> >        rm -rf .libs
> >        rm -f core *~ *% *.bak *.o *.$(SHLIBEXT)
> >
> >distclean: clean
> >        rm config.* Makefile
>
> --
> Prosim nepouzivejte starou emailovou adresu phaphe at seznam.cz,
> moje nova adresa je roman.bouchner at gmail.com. Diky.
>
> Please do not use my old email address phaphe at seznam.cz, use
> roman.bouchner at gmail.com instead. Thanks.


More information about the samba mailing list