Компиляция MPIR gcc — не могу найти -lmpir

Я пытаюсь скомпилировать простую программу на C, используя GCC с MPIR под MinGW на моем компьютере с Windows 7. Я успешно установил MPIR (я полагаю) с настройкой, созданием, проверкой и установкой (не использовал «sudo» — что это?).

Программа называется «mytest.cpp», находится в верхней папке MPIR, а именно C: /MPIR/mpir-2.7.0/, где также находится «mpir.h» (это «the» (правильно? их несколько?) mpir.h?)

#include "mpir.h"using namespace std;

int main ()
{
mpz_t z;
mpz_init(z);
return 0;
}

Я пробовал компилировать через

gcc mytest.c -o mytest -lmpir -I / C: /MPIR/mpir-2.7.0/

с надеждой, что GCC сможет найти mpir.h, «-lmpir», потому что мне сказал полезный разработчик; но тогда это говорит:

«C: / mingw / […] /bin/ld.exe: не удается найти -lmpir»

где «[…]» обозначает некоторые подъемы и опускания каталогов внутри каталога «minGW». Тем не менее, я с оболочкой в ​​настоящее время в
C: /MPIR/mpir-2.7.0/ каталог.

Что случилось? Как заставить GCC найти файлы mpir? Должна ли опция компиляции «-I» быть написана иначе? Я также слышал о какой-то опции «-L», но нигде не смог ее найти. Благодарю.

0

Решение

+ Изменить

gcc mytest.c -o mytest -lmpir -I / C: /MPIR/mpir-2.7.0/

в

gcc mytest.c -o mytest -lmpir -IC: /MPIR/mpir-2.7.0/ -LC: /MPIR/mpir-2.7.0

Вам не нужен / перед C: а флаг -L сообщает компоновщику, где найти библиотеку, с которой вы ссылаетесь, с флагом -l.

Кроме того, я бы рекомендовал использовать относительные пути к вашим включениям и библиотекам вместо абсолютных.

1

Другие решения

Хорошо, я исправил это.
Подводя итог, критические моменты являются:
— порядок параметров gcc имеет значение: «-o mytest» должен идти до конца, а «-lname» до, но после «-Ldir»;
— путь должен иметь «.libs» в конце, потому что это где библиотеки (даже если они не должны называться libmpir.a)
— (по крайней мере, в MinGW) рабочий формат c: /MPIR/mpir-2.7.0/.libs (то есть абсолютный, также из / usr / local / или других мест)

Что сработало, например:

$ gcc mytest.c -Lc: /MPIR/mpir-2.7.0/.libs -lmpir -o mytest
$ gcc mytest.c -Lc: /MPIR/mpir-2.7.0/.libs -lmpir.dll -o mytest

Лучший.

0

По вопросам рекламы [email protected]