yegord / snowman

Snowman decompiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is it possible to build Snowman without IDA?

Eightyplus opened this issue · comments

I'm was just wondering, is it possible to build snowman without IDA? I see that there is a standalone for windows, and I want to build a standalone for OS X.

Yes, there have been multiple reports about successes.
I guess, just following the build instructions will do.

Oh, I read the warning as an error. I was missing Boost. However, I have a linker issue with QT. I tried with both v4 and v5 without luck. Any hints to make it work on mac?

So, what is the error?

Undefined symbols for architecture x86_64:
  "QT::QByteArray::shared_null", referenced from:
      nc::Exception::Exception(QT::QString const&) in libnc.a(Exception.cpp.o)
      nc::Exception::Exception(QT::QString const&) in libnc.a(Exception.cpp.o)

....

  "typeinfo for QT::QObject", referenced from:
      typeinfo for nc::core::Context in libnc.a(moc_Context.cxx.o)
      typeinfo for nc::core::input::Parser in libnc.a(LeParser.cpp.o)
      typeinfo for nc::core::input::Parser in libnc.a(PeParser.cpp.o)
      typeinfo for nc::core::input::Parser in libnc.a(ElfParser.cpp.o)
      typeinfo for nc::core::input::Parser in libnc.a(MachOParser.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [nocode/nocode] Error 1
make[1]: *** [nocode/CMakeFiles/nocode.dir/all] Error 2
make: *** [all] Error 2

Did you build Qt in QT namespace?

I tried to search for nocode, mac os x, x86_64, and QT. I'm just stuck.
Maybe I need a specific version of nocode?

You are referring to bullet 3 under "Notes on Building IDA Plug-In" (a bit confusing), then no. But I guess I have to download QT manually instead of installing it with homebrew?

It seems, you have specified -D QT_NAMESPACE=QT when configuring Snowman, while having Qt built not in QT namespace (by default it is not built in a namespace).
Just configure using cmake from scratch and do not specify -D QT_NAMESPACE=QT.
This should fix your problem.

Same error, will have to look at it tomorrow. Thanks for the fast reply!

You probably did not reconfigure from scratch.
CMake tends to cache configuration parameters.
Removing the build directory completely is the easiest way to make sure QT_NAMESPACE=QT is not cached anywhere.

Nice, thank you!
I reset the repository and started over without QT_NAMESPACE=QT and now it works!