illera88 / Ponce

IDA 2016 plugin contest winner! Symbolic Execution just one-click away!
https://docs.idaponce.com
Other
1.48k stars 72 forks source link

Visual studio 2015 compatibility issue #68

Closed h3ph4est7s closed 7 years ago

h3ph4est7s commented 7 years ago

Hi,

First of all congrats for your awesome work. I tried to build the project but no luck. Im using VS2015 and i have installed all the required dependencies. I upgraded the platform toolset to v140 in result all static compiled libraries got broken and i have to rebuild everything. Except that there are a lot of static declared paths within the project configuration, this is not portable. Here is a partial error log from the build.

1>triton.lib(register.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(memoryAccess.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(instruction.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(api.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(x86Specifications.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(immediate.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(operandWrapper.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(symbolicEngine.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(taintEngine.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(coreUtils.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(x86Cpu.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(symbolicExpression.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(symbolicVariable.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(ast.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(solverModel.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(bitsVector.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(architecture.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(astGarbageCollector.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(astRepresentation.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(callbacks.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(solverEngine.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(astDictionaries.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(pathManager.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(symbolicOptimization.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(symbolicSimplification.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(x86Semantics.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(x8664Cpu.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(astPythonRepresentation.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(astSmtRepresentation.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(z3Result.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(tritonToZ3Ast.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(pathConstraint.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>triton.lib(z3ToTritonAst.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_config_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_context.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_ast.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_bv.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_numeral.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_model.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_parsers.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_solver.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_ast_vector.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_arith.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_log.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_log_macros.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(env_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(context_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(memory_manager.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(gparams.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(warning.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(bv_simplifier_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(dl_decl_plugin.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(mpz.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(pattern_inference_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(theory_arith_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(api_polynomial.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(arith_simplifier_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(ast.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(theory_bv_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(preprocessor_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(datatype_decl_plugin.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(trace.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smt_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(ast_smt2_pp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(symbol.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(bv_decl_plugin.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(tactic_manager.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(realclosure.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(rational.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smtlib.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(z3_exception.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(reg_decl_plugins.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(array_simplifier_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(qi_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(arith_decl_plugin.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(dyn_ack_params.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(install_tactic.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(fpa_decl_plugin.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(ast_ll_pp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(mpq.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(rlimit.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(well_sorted.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(scoped_timer.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(ast_smt_pp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(dl_bmc_engine.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(var_subst.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(expr_safe_replace.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(ast_translation.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(th_rewriter.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(scoped_ctrl_c.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(small_object_allocator.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(mpf.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(algebraic_numbers.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(model_smt2_pp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(model.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(model_v2_pp.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(cmd_context.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smtparser.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(pdecl.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smt2parser.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smt_strategic_solver.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(tactic2solver.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smt_solver.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(statistics.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(smt_implied_equalities.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(util.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(mem_initializer.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(cmd_context_types.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
1>libz3-static-x86-MT.lib(gparams_register_modules.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in actions.obj
illera88 commented 7 years ago

Hi,

z3 and triton were compiled with VS2013 and the linker is compiling since you are using VS2015. You need to use VS2013 or compile z3 and triton with VS2015.

I'm gonna close the issue but feel free to coment on it and I can reopen it if there are other problems. Cheers

h3ph4est7s commented 7 years ago

Yes i also mentioned that in my previous post. nevertheless this is a major draw back because there is no reference about VS2013. It takes a lot of time to download the dependencies, please include this in the documentation or create a chained build without the use of compiler specific dependencies.

0ca commented 7 years ago

Hi @h3ph4est7s ,

We mentioned already the requirement about VS2013.

https://github.com/illera88/ponce#building

We provide compiled binaries for Ponce, but if you want to build your own plugin you can do so using Visual Studio 2013. We tried to make the building process as easy as possible:

We will try in the future to avoid the compiler specific.