To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.
Compiling modules
Compiling a module
If you have the source code for a module, there are multiple ways to compile it.
make
If you still have ZNC's source around, compiling a new module is a really simple thing to do.
- Save the module in the module dir in your ZNC source tree. The filename should be <modulename>.cpp. You can choose pretty much any name for the module.
- Run make (or gmake). The new module will be found and built.
- If you installed ZNC using (g)make install, you can just run that command again and you are done.
- Else you now have <modulename>.so in your modules directory. This is the module
znc-buildmod
If you don't have ZNC's source around, but installed it (or installed from your distribution's package manager), you don't have to worry. There is a tool called znc-buildmod.
- Save the module's source somewhere. Use <modulename>.cpp as the file name.
- Run
znc-buildmod <modulename>.cpp
- Now you have <modulename>.so in your current directory. This is the module.
znc-buildmod
is installed to the same directory to which znc
is installed, so you might have to change into that directory and use ./znc-buildmod <modulename>.cpp
.
znc-config
If you really want to use znc-config directly, do this:
PATH=$PATH:~/<ZNC's prefix>/bin g++ `znc-config --cflags` `znc-config --include` `znc-config --libs` -shared -o <modulename>.so <modulename>.cpp
You need the full path to znc-config again, or you can add that path to your $PATH environment variable.
You now have <modulename>.so and can proceed.
Installing a module
So once you got <modulename>.so, what should you do with this file? The easiest solution is moving or copying that file to ~/.znc/modules. If you use a different datadir than ~/.znc, move it there in the modules directory. If you don't know what a datadir is, just use ~/.znc/modules.
If you upgrade your ZNC version you must recompile all your modules.