trying to make wemos d1 code modular causes collect2: error: ld returned 1 exit status exit status 1
You are calling Funcs::Connect::connectWifi() right here:

conn.connectWifi();


since conn is of type Funcs::Connect

But you defined a function Funcs::connectWifi():

namespace Funcs
{

  void connectWifi() {


where I think you meant to have connectWifi be a member of that Connect class.

namespace Funcs
{

  void Connect::connectWifi() {


That's not the only issue with your code, you also create the instance in setup and let it go out of scope after calling just the one function.  But that's a different kind of error.  It's legal code, just probably doesn't do what you want.