スキップしてメイン コンテンツに移動

投稿

注目

linux shared library global/local functionを設定する方法

 C++言語の関数を共有ライブラリとして作成する場合、linuxではデフォルトですべての関数がglobalで共有されてしまいます。そのため、共有したい関数/共有したくない関数を定義し共有ライブラリを作成する方法を記述します。 以下はRedhat 8.6環境で確認しました。 # cat test1.c #include <stdio.h> #include <stdlib.h> #define RETURN_VAL 1 int sub() { return RETURN_VAL; } extern int test1() { int rc = sub(); return rc; } # cat makefile.1.default # SRCDIR = . TARGETDIR = . TARGETLIB = $(TARGETDIR)/libtest1.so CODESRC = $(SRCDIR)/test1.c TARGETOBJ = $(TARGETDIR)/test1.o CC = g++ CCOPTIONS       = -c -g -O0 -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=small LIBCC = $(CC) LDOPTIONS  = -shared -m64 RM = rm all: $(TARGETLIB) $(TARGETLIB): $(TARGETOBJ) $(LIBCC) $(LDOPTIONS) $(TARGETOBJ) -o $(TARGETLIB) $(TARGETOBJ): $(CODESRC) $(CC) $(CCOPTIONS) -c $(CODESRC) -o $(TARGETOBJ) clean: $(RM) $(TARGETLIB) $(TARGETOBJ) # make -f makefile.1.default g++ -c -g -O0 -fPIC -Wno-deprecated -m64 -mtune=generic -mcmodel=small -c ./test1.c -o ./test1.o g++ -shared -m64 ./te...

最新の投稿

APT_BUFFERING_POLICY=force_bufferingの仕様

dsx分析

dsjob.pjb.xml抽出

Db2 load query

ベルトでしっかりとまるフックL 2個入り

db2 load pending how to reset

iPad をトレース台代わりに使う際のおすすめの設定

DSログからDB2 Loadをタイムスタンプと一緒に抜き出す

APT_OUTPUT_CHARSET orchadmin の出力の違い

Db2ConnectorのDb2Client libの設定