C++ ソース コードからライブラリ (Ubuntu、共有または静的) を作成したいと考えています。指定されたソース コードには、「outFile.cpp」に main() 関数が含まれています。
"g++ -lMyLibrary.a" のように、後でライブラリにリンクする必要がある独自の main.cpp ファイルを作成したいと考えています。
そのため、C++ ソース コードのビルド スクリプトを変更したいと考えています。main() 関数を除外し、ソース コードからすべての関数/メソッドを提供するライブラリ ファイルを生成するには、以下のビルド スクリプトで何を変更する必要がありますか?
buildscript は automake を使用します。
ビルドスクリプト.sh:
#!/bin/bash
./autogen.sh ;
./autogen.sh ;
export CXXFLAGS="-O2"
export CFLAGS="-O2"
export CPPFLAGS="-D__STATIC_LINK -DBUILD_WITH_GPL3rdP -DBUILD_LIBSVM ...."
./configure --prefix=$INSTPREFIX --enable-static --enable-shared=no
./update_build_version.sh
make clean &&
make -j8 ; make install
g++ $CFLAGS -static -o outFile outFile-outFile.o -lm -pthread .libs/libMyLibrary.a
Makefile.am:
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = subdir-objects
bin_PROGRAMS = outFile
...
NEWMAT_SOURCES=\
NEWMAT_CPPFLAGS = -I ../thirdparty
NEWMAT_LDFLAGS =
LIB_SOURCES=\
lib_LTLIBRARIES = libMyLibrary.la
libMyLibrary_la_SOURCES = $(MyLibrary_SOURCES)
libMyLibrary_la_CPPFLAGS = $(MyLibrary_CPPFLAGS)
libMyLibrary_la_LIBADD = $(MyLibrary_LIBS)
libMyLibrary_la_LDFLAGS = --no-undefined
説明が不十分で申し訳ありません。これは私が最初に作成したビルド スクリプトであり、必要なツールについてはまだ読んでいます。ありがとう。