Примеры

Библиотека: print.hpp  print.cpp

Основная программа: test-print.cpp

Компиляция в GCC (Unix)

Статическая библиотека

библиотека:

g++ -D LIBPRINT_STATIC -c print.cpp

ar cr libprint.a print.o

программа:

g++ -D LIBPRINT_STATIC -I. -L. -otest test-print.cpp -lprint

Вместо точек (текущий каталог) подставляйте правильные пути в заголовкам (-I) и библиотекам (-L).

Динамическая библиотека

библиотека:

g++ -shared -fPIC -o libprint.so print.cpp

программа:

g++ -I. -L. -otest test-print.cpp -lprint

Вместо точек (текущий каталог) подставляйте правильные пути в заголовкам (-I) и библиотекам (-L).

Если при запуске программы библиотека будет лежать не в стандартном каталоге, собирайте программу так:

g++ -I. -L. -Wl,-rpath . -otest test-print.cpp -lprint

Вместо точки (текущий каталог) в параметре -rpath подставляйте правильный путь к библиотеке для запуска.

Все пути могут быть относительными.

Компиляция в MS Visual C++ (версия 2010)

print.zip

Обратите внимание на следующие настройки в проектах.

libprint-static

C/C++ > Preprocessor > Preprocessor Definitions : добавлено LIBPRINT_STATIC (для всех конфигураций)

libprint-shared

C/C++ > Preprocessor > Preprocessor Definitions : добавлено LIBPRINT_SHARED (для всех конфигураций)

test-static

C/C++ > Preprocessor > Preprocessor Definitions : добавлено LIBPRINT_STATIC (для всех конфигураций)

C/C++ > General > Additional Include Directories – каталоги заголовков (для всех конфигураций)

Linker > General > Additional Library Directories – каталоги библиотек (отдельно для каждой конфигурации)

Linker > Input > Additional Dependencies – lib-файлы библиотек (отдельно для каждой конфигурации)

test-shared

C/C++ > General > Additional Include Directories – каталоги заголовков (для всех конфигураций)

Linker > General > Additional Library Directories – каталоги библиотек (отдельно для каждой конфигурации)

Linker > Input > Additional Dependencies – lib-файлы библиотек (отдельно для каждой конфигурации)

 

Если файлы, необходимые программе для запуска (в т.ч. библиотеки) лежат в отдельной папке, то для запуска из-под MSVC пропишите путь к папке в параметре

Debugging > Working Directory

Этот параметр иногда может сбрасываться, особенно при переносе проекта между машинами.

 

Все пути могут быть относительными.

Также будьте внимательны с подключением стандартной библиотеки, она должна быть подключена одинаково в вашей библиотеке и в вашей программе для этого проверяйте параметры

C/C++ > Code Generation > Runtime Library

General > Use of MFC

В некоторых случаях мешает несоответствие кодировок, параметр

General > Character Set

 

  • Нет меток