Как связать заголовочные файлы после make install pnetcdf

Я пытаюсь следовать инструкциям после установки pnet cdf. После запуска следующего:

cd pnetcdf-1.11.2
./configure --prefix=$HOME/PnetCDF --with-mpi=/usr/bin --enable-netcdf4 --enable-shared --enable-thread-safe
make -j8
make install

PATH=$HOME/PnetCDF/bin:$PATH ; export PATH

я получаю следующее сообщение:

PnetCDF has been successfully installed under
|          /home/mmann/PnetCDF
|
|  * PnetCDF header files have been installed in
|          /home/mmann/PnetCDF/include
| # * PnetCDF library files have been installed in
| #         /home/mmann/PnetCDF/lib
|  #* PnetCDF utility programs have been installed in
|  #        /home/mmann/PnetCDF/bin
|  *# PnetCDF man pages have been installed in
|      #    /home/mmann/PnetCDF/share/man
|
|  To compile your PnetCDF programs, please add the following to the command
|  line, so the compiler can find the PnetCDF header files:
| #     -I/home/mmann/PnetCDF/include
|
|  Add the following line to link your program to PnetCDF library:
|      -L/home/mmann/PnetCDF/lib -lpnetcdf

Как нуб, мне неясно, как добавить эти ссылки.

Я запускаю следующее?

g++ -o sms ./src/sms.o -I/home/mmann/PnetCDF/include

g++ -o sms ./src/sms.o -L/home/mmann/PnetCDF/lib -lpnetcdf
1
задан 29 July 2019 в 17:21

1 ответ

Рискуя тем, чтобы звучать педантичными, Вы не связываете заголовочные файлы - Вы включаете заголовочные файлы и библиотеки ссылок.

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

g++ -o sms -I/home/mmann/PnetCDF/include ./src/sms.cpp -L/home/mmann/PnetCDF/lib -lpnetcdf

Если программа разделяется по многим исходным файлам затем, распространено разделить сборку на отдельную компиляцию и фазы ссылки, как

g++ -o sms.o -I/home/mmann/PnetCDF/include -c ./src/sms.cpp
g++ -o some.o -I/home/mmann/PnetCDF/include -c ./src/some.cpp
g++ -o other.o -I/home/mmann/PnetCDF/include -c ./src/sms.other

и затем

g++ -o sms sms.o some.o other.o -L/home/mmann/PnetCDF/lib -lpnetcdf

Основное преимущество выполнения этого состоит в том, что при внесении изменения в один из исходных файлов Вы не должны перекомпилировать всех другие (просто перекомпилировали измененный и повторно связывают исполняемый файл).

0
ответ дан 7 December 2019 в 19:20

Другие вопросы по тегам:

Похожие вопросы: