levin108 / hybrid

Hybird is a lightweight IM framework, currently supports China Mobile Fetion protocol and xmpp protocol.
levin108.github.com/hybrid
GNU General Public License v2.0
110 stars 27 forks source link

FreeBSD下编译不通过 #38

Closed ghw closed 11 years ago

ghw commented 12 years ago

Scanning dependencies of target hybrid [ 6%] Building C object CMakeFiles/hybrid.dir/lib/connect.c.o /home/ghw/hybrid/lib/connect.c: In function 'addr_init': /home/ghw/hybrid/lib/connect.c:81: error: invalid application of 'sizeof' to incomplete type 'struct sockaddr_in' /home/ghw/hybrid/lib/connect.c:82: error: dereferencing pointer to incomplete type /home/ghw/hybrid/lib/connect.c:83: error: dereferencing pointer to incomplete type /home/ghw/hybrid/lib/connect.c:84: error: dereferencing pointer to incomplete type *\ [CMakeFiles/hybrid.dir/lib/connect.c.o] Error code 1

Stop in /home/ghw/hybrid/build. *\ [CMakeFiles/hybrid.dir/all] Error code 1

Stop in /home/ghw/hybrid/build. *\ [all] Error code 1

[ghw@7axu.pts/1] ~/hybrid/build % cmake .. -- The C compiler identification is GNU 4.2.1 -- The CXX compiler identification is GNU 4.2.1 -- Check for working C compiler: /usr/local/libexec/ccache/gcc -- Check for working C compiler: /usr/local/libexec/ccache/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/local/libexec/ccache/c++ -- Check for working CXX compiler: /usr/local/libexec/ccache/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.27") -- Found Gettext: /usr/local/bin/msgmerge (found version "0.18.1") -- checking for module 'gtk+-2.0' -- found gtk+-2.0, version 2.24.6 -- checking for module 'gdk-pixbuf-2.0' -- found gdk-pixbuf-2.0, version 2.23.5 -- checking for module 'glib-2.0' -- found glib-2.0, version 2.28.8 -- checking for module 'gobject-2.0' -- found gobject-2.0, version 2.28.8 -- checking for module 'gmodule-2.0' -- found gmodule-2.0, version 2.28.8 -- checking for module 'openssl' -- found openssl, version 1.0.1c -- checking for module 'libxml-2.0' -- found libxml-2.0, version 2.7.8 -- checking for module 'libnotify' -- found libnotify, version 0.7.3 -- checking for module 'gstreamer-0.10' -- found gstreamer-0.10, version 0.10.36 -- checking for module 'xscrnsaver' -- found xscrnsaver, version 1.2.1 -- checking for module 'webkit-1.0' -- found webkit-1.0, version 1.4.3 -- Libnotify support: YES -- GStreamer support: YES -- Xscreensaver support: YES -- WebKit support: YES -- NetworkManager support: NO -- Ubuntu Indicator support: NO -- Native language support: YES -- glib-2.0 -- Configuring done -- Generating done -- Build files have been written to: /home/ghw/hybrid/build [ghw@7axu.pts/1] ~/hybrid/build % make -- Libnotify support: YES -- GStreamer support: YES -- Xscreensaver support: YES -- WebKit support: YES -- NetworkManager support: NO -- Ubuntu Indicator support: NO -- Native language support: YES -- glib-2.0 -- Configuring done -- Generating done -- Build files have been written to: /home/ghw/hybrid/build

FreeBSD 7axu.com 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #0 r238654: Fri Jul 20 23:41:10 CST 2012 root@7axu.com:/usr/obj/usr/src/sys/E125-A11 amd64

ekd123 commented 12 years ago

It's easy to fix. Add

#include <netinet/in.h>

Linux seems that it doesn't need this. (non-standard?)

ekd123 commented 12 years ago

Only two files need this. network.c and connect.c

ekd123 commented 12 years ago

Then, /usr/bin/ld: cannot find -lgobject-2.0

Not only gobject but (seems) all the libraries.

I have no idea how to fix this.

ekd123 commented 12 years ago

link_directories( ${GTK2_LIBRARY_DIRS} ${GDKPIXBUF_LIBRARY_DIRS} ${GLIB2_LIBRARY_DIRS} ${GOBJECT2_LIBRARY_DIRS} ${GMODULE2_LIBRARY_DIRS} ${OFETION_LIBRARY_DIRS} ${OPENSSL_LIBRARY_DIRS} ${LIBXML2_LIBRARY_DIRS} )

Fixed by adding this into CMakeLists.txt.

ekd123 commented 12 years ago

Please add patch here (http://sourceforge.net/tracker/index.php?func=detail&aid=3527777&group_id=180858&atid=894869). or it would GLib (gthread-posix.c): Unexpected error from C library during 'pthread_mutex_unlock': Operation not permitted. Aborting.

By the way, default modules seem not work... neither does user-installed modules...

levin108 commented 12 years ago

Would you like to submit a patch to fix this?

thanks