google / binexport

Export disassemblies into Protocol Buffers
Apache License 2.0
1.03k stars 197 forks source link

binexport configuration fails with postgreSQL-9.5.3 installed #18

Closed thurizas closed 7 years ago

thurizas commented 7 years ago

I'm trying to build binexport (retreived from GitHub on Friday 18 Nov 2016) on a Windows 7 computer, with IDA-6.95 and Postgresql-9.5.3 installed. Everything was going great till the last step where we configure and build binexport.

The configuration script produced the following:

C:>cmake -DCMAKE_FIND_ROOT_PATH="cd" -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY 
-- Boost version: 1.61.0
CMake Error at C:/DevTools/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY) (found suitable
version "9.5.3", minimum required is "9.3")
Call Stack (most recent call first):
C:/DevTools/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
C:/DevTools/CMake/share/cmake-3.7/Modules/FindPostgreSQL.cmake:170 (find_package_handle_standard_args)
CMakeLists.txt:37 (find_package)

-- Configuring incomplete, errors occurred!
See also "C:/Users/Administrator/GNUHome/binexport/build_msvc/CMakeFiles/CMakeOutput.log".

It looks like it is finding the postgreSQL headers and libraries, but CMake thinks that version 9.5.3 does not meet the minimium requirements of postgreSQL-9.3.

CMake is not a build tool I use frequently so I am at a loss on how to proceed to rectify this problem, any suggestions would be helpful.

cblichmann commented 7 years ago

This looks wrong to me: cmake -DCMAKE_FIND_ROOT_PATH="cd". In the original build instructions, it says "%cd%", which should expand on the command line to the current directory. Can you give the exact command-line you used?

thurizas commented 7 years ago

sorry, that was a 'typo', actual command line sequence was

C:\Users\Administrator\GNUHome\binexport\build_msvc>cmake -DCMAKE_FIND_ROOT_PATH="%cd%" -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY ..
-- Building for: Visual Studio 11 2012
-- The C compiler identification is MSVC 17.0.61030.0
-- The CXX compiler identification is MSVC 17.0.61030.0
-- Check for working C compiler: C:/VStudio12/VC/bin/cl.exe
-- Check for working C compiler: C:/VStudio12/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/VStudio12/VC/bin/cl.exe
-- Check for working CXX compiler: C:/VStudio12/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boost version: 1.61.0
-- Found Git: C:/DevTools/Git/cmd/git.exe (found version "2.10.2.windows.1")
-- Found OpenSSL: C:/Users/Administrator/GNUHome/binexport/build_msvc/OpenSSL/lib/ssleay32.lib;C:/Users/Administrator/GNUHome/binexport/build_msvc/Ope
nSSL/lib/libeay32.lib (found suitable version "1.0.2g", minimum required is "1.0.1")
CMake Error at C:/DevTools/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY
  PostgreSQL_INCLUDE_DIR) (Required is at least version "9.3")
Call Stack (most recent call first):
  C:/DevTools/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  C:/DevTools/CMake/share/cmake-3.7/Modules/FindPostgreSQL.cmake:170 (find_package_handle_standard_args)
  CMakeLists.txt:37 (find_package)

-- Configuring incomplete, errors occurred!
See also "C:/Users/Administrator/GNUHome/binexport/build_msvc/CMakeFiles/CMakeOutput.log".

CMakeOutput.txt

cblichmann commented 7 years ago

If PostgreSQL is not in your build_msvc\postgresql directory, you need to specify it:

...
-DPostgreSQL_INCLUDE_DIR="POSTGRESQL_ROOT_DIR_HERE\include"
-DPostgreSQL_LIBRARY="POSTGRESQL_ROOT_DIR_HERE\lib\libpq.lib"
...

Also take a look at how the AppVeyor build configuration for Windows works: https://github.com/google/binexport/blob/master/appveyor.yml

thurizas commented 7 years ago

Thanks, that did the trick.