Использование библиотеки в Sublime Text - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу скомпилировать с помощью программы g cc a C, используя библиотеку GMP с Sublime Text в качестве моего текстового редактора. Я знаю, что GMP хорошо установлен, потому что я могу использовать его с Code :: Blocks.

Однако я не знаю, как указать моему компилятору, где он может найти библиотеку (я на Windows и папка GMP находится в C: \ gmp), и я продолжаю получать сообщение об ошибке:

fatal error: gmp.h: No such file or directory
>#include <gmp.h>

Я пытался изменить систему сборки, которую использовал в Sublime Text для компиляции своих программ на следующий код:

{
    "cmd": ["gcc", "$file_name", "-I C:\\gmp", "-L C:\\gmp\\.libs", "-o", "${file_base_name}.exe", "&&", "${file_base_name}.exe"],
    "file_regex": "^([^:]+):([0-9]+):",
    "selector": "source.c",
    "shell": true,
    "working_dir": "$file_path"
}

, но это не работает. Кажется, мой компилятор не может найти библиотеку GMP. Я пробовал несколько комбинаций для аргументов, но ничего не работает. Я также попытался использовать флаги компилятора, которые я передал g cc в Code :: Blocks (поскольку у меня нет проблем с использованием GMP с Code :: Blocks), но, похоже, он тоже не работает.

Удаляя пробел после -I и -L, я получаю следующую ошибку:

C:\Users\UTILIS~1\AppData\Local\Temp\ccE63Xzx.o:test.c:(.text+0x1e): undefined reference to `__gmpz_init_set_ui'
C:\Users\UTILIS~1\AppData\Local\Temp\ccE63Xzx.o:test.c:(.text+0x32): undefined reference to `__gmp_printf'
collect2.exe: error: ld returned 1 exit status

и добавляя -lgmp Я получаю:

c:\gmp\.libs/libgmp.a(doprntf.o):doprntf.c:(.text+0x701): undefined reference to `__gmpn_bases'
c:\gmp\.libs/libgmp.a(get_str.o):get_str.c:(.text+0x19c): undefined reference to `__gmpn_bases'
c:\gmp\.libs/libgmp.a(get_str.o):get_str.c:(.text+0x276): undefined reference to `__gmpn_bases'
c:\gmp\.libs/libgmp.a(lt20-get_str.o):get_str.c:(.text+0x18b): undefined reference to `__gmpn_bases'
c:\gmp\.libs/libgmp.a(lt20-get_str.o):get_str.c:(.text+0x224): more undefined references to `__gmpn_bases' follow
collect2.exe: error: ld returned 1 exit status

Так как я могу указать мой компилятор g cc где он может найти библиотеку GMP?

...