You're not succeeding in running the program.
The linker errors you're seeing about undefined symbols means that your code is calling functions that don't exist. The executable is not being created (the messages about undefined symbols is the linker's way of explaining that) so cannot be executed.
In your main() function, there are a number of calls of setzero() taking one argument and of options() as a function taking two arguments. These calls are in main(), not in the context of any class. In particular, they have no relationship to any object of type queens, so do not match the member functions queens::setzero() or queens:
ptions() respectively.
Also, main() returns int, not void. Anyone (including a book) that has suggested main() returns void is wrong.
The above are problems I can identify in your code. The fix, however, is your problem .... after all, that depends on what you are trying to do with your code, and I have as much skill in mindreading as I do a propensity for walking on water (and my propensity for that is none).
Your code layout is absolutely atrocious. If you want people to explain problems to you in future, try posting small, complete, and READABLE samples of code. Also, don't expect forum members to be mind-readers. You have some idea of what you intend your code to do, but forum members do not unless you provide useful information. Posting a chunk of badly formatted code is not an effective way of eliciting help.