Thanks for your explanation! I have changed lisp code to have package definition and in-package declaration, and after that everything did work (also, i per your advice used package name in symbol lookup in C code).
There is one thing i would like to discuss a little bit further.
The question you need to answer is whether you want your program defer to run-time, on the user's workstation, when to use quicklisp to donwload and install the "str" system, and load it into your program to get the "STR" package and its functions? Do you realize that every month, new systems are added to quicklisp, but also SOME SYSTEMS are REMOVED from the quicklisp distribution!? Do you want your program to break next month because the quicklisp maintainer decided to remove some depdency from its distribution?
1) packages changing in repository is, well, just the fact of life. In most cases hoping for the best is enough. I mean, there is no certain guarantee that digital infrastructure taken for granted will be there tomorrow? 2) what i am really curious about is: when my lisp package is compiled, let us say, monolithically - is used package "pulled into" it? In resulting object fdile, is there all the machine code corresponding to the functions from it that i have used? Maybe to other ones?