Я хочу создать библиотеку (Ubuntu, общую или статическую) из исходного кода C ++. Данный исходный код включает функцию main () в «outFile.cpp».
Я хочу написать свой собственный файл main.cpp, который позже должен быть связан с библиотекой, например «g ++ -lMyLibrary.a».
Поэтому я хочу изменить скрипт сборки для исходного кода C ++. Что в приведенном ниже сценарии сборки мне нужно изменить, чтобы сгенерировать файл библиотеки, исключая любую функцию main (), которая предоставляет мне все функции / методы из исходного кода?
В buildscript используется automake.
buidScript.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
Извините за слабое описание, это первый скрипт сборки, который я пишу, и я все еще читаю о необходимых инструментах. Благодарю.
Задача ещё не решена.
Других решений пока нет …