Raised This Month: $12 Target: $400
 3% 

Linux : Unable to load plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
teol
Veteran Member
Join Date: Oct 2009
Location: Marbella
Old 09-01-2011 , 10:57   Linux : Unable to load plugin
Reply With Quote #1

Hi !

My plugin doesn't load on linux.
I've tried so many things, but it doesn't work, and it works fine on Windows.

So perhaps someone can help me.

SRCDS launched with -allowdebug -debug and GNU gdb :
Code:
...
CResponseSystem:  scripts/talker/response_rules.txt (15 rules, 76 criteria, and 16 responses)
Plugins: found file "plugin.vdf"
Unable to load plugin "addons/plugin/plugin"
maxplayers set to 20
Heap: 64.00 Mb
...
Nothing ...

Dependencies :
Code:
ldd -v plugin.so
        linux-gate.so.1 =>  (0x00c4e000)
   libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x00e03000)
   /win_c/srcds_l_bin/bin/libtier0.so => not found
   libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0x00110000)
   libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x00e16000)
   libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0x001fb000)
   libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00586000)
   /lib/ld-linux.so.2 (0x00f06000)

   Version information:
   ./plugin.so:
      libdl.so.2 (GLIBC_2.1) => /lib/i386-linux-gnu/libdl.so.2
      libdl.so.2 (GLIBC_2.0) => /lib/i386-linux-gnu/libdl.so.2
      libm.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libm.so.6
      libgcc_s.so.1 (GCC_3.0) => /lib/i386-linux-gnu/libgcc_s.so.1
      libgcc_s.so.1 (GLIBC_2.0) => /lib/i386-linux-gnu/libgcc_s.so.1
      libc.so.6 (GLIBC_2.2) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6
      libstdc++.so.6 (CXXABI_1.3) => /usr/lib/i386-linux-gnu/libstdc++.so.6
      libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/i386-linux-gnu/libstdc++.so.6
   /lib/i386-linux-gnu/libdl.so.2:
      ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
      libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.1) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_PRIVATE) => /lib/i386-linux-gnu/libc.so.6
   /usr/lib/i386-linux-gnu/libstdc++.so.6:
      libm.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libm.so.6
      ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
      libgcc_s.so.1 (GCC_4.2.0) => /lib/i386-linux-gnu/libgcc_s.so.1
      libgcc_s.so.1 (GLIBC_2.0) => /lib/i386-linux-gnu/libgcc_s.so.1
      libgcc_s.so.1 (GCC_3.3) => /lib/i386-linux-gnu/libgcc_s.so.1
      libgcc_s.so.1 (GCC_3.0) => /lib/i386-linux-gnu/libgcc_s.so.1
      libc.so.6 (GLIBC_2.4) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.3.4) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.1) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.3.2) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.2) => /lib/i386-linux-gnu/libc.so.6
   /lib/i386-linux-gnu/libm.so.6:
      ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
      libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_PRIVATE) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6
   /lib/i386-linux-gnu/libgcc_s.so.1:
      libc.so.6 (GLIBC_2.1.3) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.2.4) => /lib/i386-linux-gnu/libc.so.6
      libc.so.6 (GLIBC_2.0) => /lib/i386-linux-gnu/libc.so.6
   /lib/i386-linux-gnu/libc.so.6:
      ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
      ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
      ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
Makefile :
Code:
BASE_DIR = ../..

CXX = g++-4.1

BINARY_NAME = plugin.so

BINARY_DIR = .

SDK_SRC_DIR = $(BASE_DIR)
SDK_PUBLIC_DIR = $(SDK_SRC_DIR)/public
SDK_TIER0_DIR = $(SDK_SRC_DIR)/public/tier0
SDK_TIER1_DIR = $(SDK_SRC_DIR)/tier1
SDK_GAME_DIR = $(SDK_SRC_DIR)/game
SDK_GAMESHARED_DIR = $(SDK_GAME_DIR)/shared
SDK_GAMESERVER_DIR = $(SDK_GAME_DIR)/server

RELEASE_DIR = Release/linux
DEBUG_DIR = Debug/linux

SRCDS_DIR = /win_c/srcds_l_bin
SRCDS_BIN_DIR = $(SRCDS_DIR)/bin

SRCDS_A_DIR = $(SDK_SRC_DIR)/lib/linux

ARCH_CFLAGS = -mtune=i686 -march=pentium  -mmmx
USER_CFLAGS = -DTIXML_USE_TICPP
BASE_CFLAGS =   -msse \
                                -fpermissive \
                                -D_LINUX \
                                -DNDEBUG \
                                -Dstricmp=strcasecmp \
                                -D_stricmp=strcasecmp \
                                -D_strnicmp=strncasecmp \
                                -Dstrnicmp=strncasecmp \
                                -D_snprintf=snprintf \
                                -D_vsnprintf=vsnprintf \
                                -D_alloca=alloca \
                                -Dstrcmpi=strcasecmp \
                                -fPIC \
                                -Wno-deprecated \
                                -msse 
OPT_FLAGS = -O3 -funroll-loops -s -pipe
DEBUG_FLAGS = -g -ggdb3 -O0 -D_DEBUG                            

SRC= $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard */*/*.cpp)                        

LINK_SO =       $(SRCDS_BIN_DIR)/libtier0.so                    
LINK_A =        $(SRCDS_A_DIR)/tier1_i486.a     $(SRCDS_A_DIR)/tier2_i486.a

LINK = -lm -ldl $(LINK_A) $(LINK_SO)

INCLUDE =       -I. \
                        -I$(SDK_PUBLIC_DIR) \
                        -I$(SDK_PUBLIC_DIR)/engine \
                        -I$(SDK_PUBLIC_DIR)/tier0 \
                        -I$(SDK_PUBLIC_DIR)/tier1 \
                        -I$(SDK_PUBLIC_DIR)/vstdlib \
                        -I$(SDK_PUBLIC_DIR)/game/server \
                        -I$(SDK_SRC_DIR)/tier1 \
                        -I$(SDK_SRC_DIR)/game \
                        -I$(SDK_SRC_DIR)/game/server \
                        -I$(SDK_SRC_DIR)/game/shared
                        

ifeq "$(DEBUG)" "false"
   BIN_DIR = $(RELEASE_DIR)
   CFLAGS = $(OPT_FLAGS)
else
   BIN_DIR = $(DEBUG_DIR)
   CFLAGS = $(DEBUG_FLAGS)
endif
CFLAGS += $(USER_CFLAGS) $(BASE_CFLAGS) $(ARCH_CFLAGS)

OBJECTS := $(SRC:%.cpp=$(BIN_DIR)/%.o)

compile_object = \
   @mkdir -p $(2); \
   echo "$(1) => $(3)"; \
   $(CXX) $(INCLUDE) $(CFLAGS) -o $(3) -c $(1);

$(BIN_DIR)/%.o: %.cpp %.h
   $(call compile_object, $<, $(@D), $@)

$(BIN_DIR)/%.o: %.cpp
   $(call compile_object, $<, $(@D), $@)

all: $(OBJECTS)
   @$(CXX) $(INCLUDE) $(CFLAGS) $(OBJECTS) $(LINK) -shared -o $(BINARY_DIR)/$(BINARY_NAME)
        
release:
   @$(MAKE) all DEBUG=false

clean:
   @rm -rf $(RELEASE_DIR)
   @rm -rf $(DEBUG_DIR)
   @rm -rf $(BINARY_DIR)/$(BINARY_NAME)
        
.PHONY: clean
Help will be much appreciated ... thanks.

Edit : It's like the Load function is not executed at all.

Last edited by teol; 09-01-2011 at 11:03.
teol is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:23.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode