zyantific / IDASkins

Advanced skinning plugin for IDA Pro
MIT License
912 stars 150 forks source link

Compilation fails on Ubuntu 14.04 #2

Closed Rupan closed 10 years ago

Rupan commented 10 years ago

After some Google-fu, I realized that you're using C++11 features, so I patched the Makefile to enable it (add -std=c++11 to CXXFLAGS). However, there are still a couple of issues:

g++ -c -m32 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -std=c++11 -D__IDP__ -DNO_OBSOLETE_FUNCS -DQPROJECT_LIBRARY -D__LINUX__ -D_FORTIFY_SOURCE=0 -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XMLPATTERNS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NAMESPACE=QT -DQT_SHARED -I../../../../Qt-4.8.4-IDA/mkspecs/linux-g++-32 -I. -I../../../../Qt-4.8.4-IDA/include/QtCore -I../../../../Qt-4.8.4-IDA/include/QtGui -I../../../../Qt-4.8.4-IDA/include/QtXml -I../../../../Qt-4.8.4-IDA/include/QtXmlPatterns -I../../../../Qt-4.8.4-IDA/include -I/home/michael/idasdk/include -Iobj/x86_lnx_gcc_32 -Iobj/x86_lnx_gcc_32 -o obj/x86_lnx_gcc_32/ThemeSelector.o ThemeSelector.cpp
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
ThemeSelector.cpp:1:0: note: this is the location of the previous definition
 /**
 ^
ThemeSelector.cpp:64:17: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
             msg("["PLUGIN_NAME"] %s: %s\n", it->toUtf8().data(), e.what());
                 ^
In file included from /home/michael/idasdk/include/ida.hpp:11:0,
                 from ThemeSelector.cpp:33:
/home/michael/idasdk/include/pro.h: In function ‘bool is_mul_ok(T, T)’:
/home/michael/idasdk/include/pro.h:518:27: warning: typedef ‘COMPILE_TIME_ASSERT_1067’ locally defined but not used [-Wunused-local-typedefs]
 #define __CASSERT_N0__(l) COMPILE_TIME_ASSERT_ ## l
                           ^
/home/michael/idasdk/include/pro.h:519:27: note: in expansion of macro ‘__CASSERT_N0__’
 #define __CASSERT_N1__(l) __CASSERT_N0__(l)
                           ^
/home/michael/idasdk/include/pro.h:520:35: note: in expansion of macro ‘__CASSERT_N1__’
 #define CASSERT(cnd) typedef char __CASSERT_N1__(__LINE__) [(cnd) ? 1 : -1]
                                   ^
/home/michael/idasdk/include/pro.h:1067:3: note: in expansion of macro ‘CASSERT’
   CASSERT((T)(-1) > 0); // make sure T is unsigned
   ^
/home/michael/idasdk/include/pro.h: In function ‘bool is_add_ok(T, T)’:
/home/michael/idasdk/include/pro.h:518:27: warning: typedef ‘COMPILE_TIME_ASSERT_1076’ locally defined but not used [-Wunused-local-typedefs]
 #define __CASSERT_N0__(l) COMPILE_TIME_ASSERT_ ## l
                           ^
/home/michael/idasdk/include/pro.h:519:27: note: in expansion of macro ‘__CASSERT_N0__’
 #define __CASSERT_N1__(l) __CASSERT_N0__(l)
                           ^
/home/michael/idasdk/include/pro.h:520:35: note: in expansion of macro ‘__CASSERT_N1__’
 #define CASSERT(cnd) typedef char __CASSERT_N1__(__LINE__) [(cnd) ? 1 : -1]
                                   ^
/home/michael/idasdk/include/pro.h:1076:3: note: in expansion of macro ‘CASSERT’
   CASSERT((T)(-1) > 0); // make sure T is unsigned
   ^
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator< <template-parameter-1-1> >::construct(_Up*, _Args&& ...) [with _Up = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >]’:
/usr/include/c++/4.8/bits/alloc_traits.h:254:4:   required from ‘static typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type std::allocator_traits<_Alloc>::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >; typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type = void]’
/usr/include/c++/4.8/bits/alloc_traits.h:393:57:   required from ‘static decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) std::allocator_traits<_Alloc>::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >; decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) = <type error>]’
/usr/include/c++/4.8/bits/vector.tcc:97:40:   required from ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {std::pair<QT::QDir, ThemeManifest*>}; _Tp = std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >; _Alloc = std::allocator<std::pair<QT::QDir, std::unique_ptr<ThemeManifest> > >]’
ThemeSelector.cpp:60:94:   required from here
/usr/include/c++/4.8/ext/new_allocator.h:120:4: error: no matching function for call to ‘std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >::pair(std::pair<QT::QDir, ThemeManifest*>)’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note: candidates are:
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:206:9: note: template<class ... _Args1, unsigned int ..._Indexes1, class ... _Args2, unsigned int ..._Indexes2> std::pair<_T1, _T2>::pair(std::tuple<_Args1 ...>&, std::tuple<_Args2 ...>&, std::_Index_tuple<_Indexes1 ...>, std::_Index_tuple<_Indexes2 ...>)
         pair(tuple<_Args1...>&, tuple<_Args2...>&,
         ^
/usr/include/c++/4.8/bits/stl_pair.h:206:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   ‘std::pair<QT::QDir, ThemeManifest*>’ is not derived from ‘std::tuple<_Elements ...>’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:155:9: note: template<class ... _Args1, class ... _Args2> std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>)
         pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
         ^
/usr/include/c++/4.8/bits/stl_pair.h:155:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   cannot convert ‘std::forward<std::pair<QT::QDir, ThemeManifest*> >((* & __args#0))’ (type ‘std::pair<QT::QDir, ThemeManifest*>’) to type ‘std::piecewise_construct_t’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:150:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(std::pair<_U1, _U2>&&)
  constexpr pair(pair<_U1, _U2>&& __p)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:150:12: note:   template argument deduction/substitution failed:
/usr/include/c++/4.8/bits/stl_pair.h:147:38: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
       template<class _U1, class _U2, class = typename
                                      ^
/usr/include/c++/4.8/bits/stl_pair.h:144:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&)
  constexpr pair(_U1&& __x, _U2&& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:144:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   candidate expects 2 arguments, 1 provided
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:138:12: note: template<class _U2, class> constexpr std::pair<_T1, _T2>::pair(const _T1&, _U2&&)
  constexpr pair(const _T1& __x, _U2&& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:138:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   cannot convert ‘std::forward<std::pair<QT::QDir, ThemeManifest*> >((* & __args#0))’ (type ‘std::pair<QT::QDir, ThemeManifest*>’) to type ‘const QT::QDir&’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:133:12: note: template<class _U1, class> constexpr std::pair<_T1, _T2>::pair(_U1&&, const _T2&)
  constexpr pair(_U1&& __x, const _T2& __y)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:133:12: note:   template argument deduction/substitution failed:
In file included from /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++allocator.h:33:0,
                 from /usr/include/c++/4.8/bits/allocator.h:46,
                 from /usr/include/c++/4.8/string:41,
                 from /usr/include/c++/4.8/random:41,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/ext/new_allocator.h:120:4: note:   candidate expects 2 arguments, 1 provided
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/4.8/utility:70:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qglobal.h:68,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qatomic.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/qvariant.h:45,
                 from ../../../../Qt-4.8.4-IDA/include/QtCore/QVariant:1,
                 from obj/x86_lnx_gcc_32/ui_ThemeSelector.h:13,
                 from ThemeSelector.hpp:28,
                 from ThemeSelector.cpp:25:
/usr/include/c++/4.8/bits/stl_pair.h:128:17: note: constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       constexpr pair(pair&&) = default;
                 ^
/usr/include/c++/4.8/bits/stl_pair.h:128:17: note:   no known conversion for argument 1 from ‘std::pair<QT::QDir, ThemeManifest*>’ to ‘std::pair<QT::QDir, std::unique_ptr<ThemeManifest> >&&’
/usr/include/c++/4.8/bits/stl_pair.h:124:12: note: template<class _U1, class _U2, class> constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&)
  constexpr pair(const pair<_U1, _U2>& __p)
            ^
/usr/include/c++/4.8/bits/stl_pair.h:124:12: note:   template argument deduction/substitution failed:
/usr/include/c++/4.8/bits/stl_pair.h:121:38: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
       template<class _U1, class _U2, class = typename
                                      ^
/usr/include/c++/4.8/bits/stl_pair.h:112:26: note: constexpr std::pair<_T1, _T2>::pair(const _T1&, const _T2&) [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       _GLIBCXX_CONSTEXPR pair(const _T1& __a, const _T2& __b)
                          ^
/usr/include/c++/4.8/bits/stl_pair.h:112:26: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/4.8/bits/stl_pair.h:108:26: note: constexpr std::pair<_T1, _T2>::pair() [with _T1 = QT::QDir; _T2 = std::unique_ptr<ThemeManifest>]
       _GLIBCXX_CONSTEXPR pair()
                          ^
/usr/include/c++/4.8/bits/stl_pair.h:108:26: note:   candidate expects 0 arguments, 1 provided
make: *** [obj/x86_lnx_gcc_32/ThemeSelector.o] Error 1
athre0z commented 10 years ago

Thanks for the report. I committed a fix for it right now. Does it resolve your issues?

Rupan commented 10 years ago

I am now able to compile the plugin, but it appears not to work. I'm assuming that there is supposed to be some additional menu item under Edit -> Plugins but there is not. The plugin also does not link to libida like the others do:

$ ldd plugins/IDASkins.plx
    linux-gate.so.1 =>  (0xf7730000)
    libQtGui.so.4 => /tank/Qt-4.8.4-IDA/lib/libQtGui.so.4 (0xf6c5c000)
    libQtCore.so.4 => /tank/Qt-4.8.4-IDA/lib/libQtCore.so.4 (0xf696f000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf685d000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf6840000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf6690000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf6674000)
    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf6568000)
    libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf653f000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf6525000)
    libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf6485000)
    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf6433000)
    libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xf642a000)
    libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xf640f000)
    libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf6404000)
    libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf63c9000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf63b6000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf6282000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf623b000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6236000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf622d000)
    /lib/ld-linux.so.2 (0xf7731000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf61ef000)
    libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf61e8000)
    libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf61e1000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf61b8000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6196000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6192000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf618b000)
athre0z commented 10 years ago

What is your IDA version? I do not own a Linux license for IDA, so I had to test with the demo yesterday, which seemed to be working.

Rupan commented 10 years ago

I have a license for IDA version 6.6 on Linux.

Rupan commented 10 years ago

Interesting that it would work with the demo. Are you using the IDA 6.6 SDK?

athre0z commented 10 years ago

Yep. In fact, I explicitly added this code to the makefile

*-g++* {
    LIBS += -L"$${LIBDIR}"
}
else {
    LIBS += -L"$${LIBDIR}" -lida
}

to allow compilation with gcc in the first place. When looking into the lib directory of the IDA SDK, there is an ida.lib and a pro.lib for windows, while there's only a pro.a for Linux, so I figured out that Hex-Rays must have been merging them somehow and when I added the above code, everything was fine for me.

I'm was using Xubuntu by the way, however that shouldn't make any difference.

Rupan commented 10 years ago

Sorry it has taken so long to respond - I've been short on time. I saw that you added some code for gcc, which fixed the compilation. However, after installation, there are no additional menu entries in the plugins menu. IDA seems to start up fine, but there are no debug messages printed which indicate that the IDAskins plugin has been loaded.

Rupan commented 10 years ago

Huh - interesting. I had tried starting IDA several times but had not opened a database. I just tried to open IDA with a database at startup and now it seems that the plugin is working. So it would seem that the plugin is only activated when a database is loaded.

Rupan commented 10 years ago

I know that there are different choices regarding when a plugin loads. It has been a while since I looked closely at the IDA SDK, but it seems to me that a skin plugin should always load, regardless of whether a database is open. Just my $0.02.

athre0z commented 10 years ago

Didn't see that flag yet, thanks for the hint. I will definitely add it in the next version.

By the way: to make it look good, you will have to alter the font in the stylesheet from Consolas to whatever you selected in IDAs font dialog. Sadly, the SDK is lacking any functions to read the font config. I will have to look for a way to work around that (maybe using Qt's runtime inspection). Or I simply ask Hex-Rays to add it.