Запуск 32-битного кода C в 64-битной системе с Windows и компилятором C - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь запустить AC-код на моем ноутбуке с Windows, используя 64-битный компилятор MinGW.В начале кода есть несколько строк, которые указывают на другие файлы, такие как:

#include <openssl/e_os2.h>

При компиляции кода появляется следующая ошибка:

C:\MinGW\bin\openssl\apps>gcc s_server.c
s_server.c:21:27: fatal error: openssl/e_os2.h: No such file or directory
#include <openssl/e_os2.h>
                       ^
compilation terminated.

Я убедилсяфайлы были в правильных местоположениях, однако ошибка все еще происходит.Я думаю, что ошибка происходит, потому что я использую 32-разрядный двоичный файл в 64-разрядной системе.Есть ли способы обойти эту проблему, учитывая, что у меня нет системы Linux?

1 Ответ

0 голосов
/ 21 июня 2019
C:\MinGW\bin\openssl\apps>gcc s_server.c
s_server.c:21:27: fatal error: openssl/e_os2.h: No such file or directory
#include <openssl/e_os2.h>
                       ^
compilation terminated.

Я полагаю, вам нужен аргумент -I во время компиляции.Заголовки не расположены в каталоге apps/.Вместо этого они расположены по адресу ../include/ (относительно apps/).

Так что, возможно, команда компиляции будет выглядеть так:

# from apps/ directory
gcc -I ../include/ s_server.c

Возможно, у вас возникнут дополнительные проблемы, потому что вам нужно связатьпротив libssl и libcrypto.Имейте в виду, что вам все равно придется поработать.


Вот как это выглядит в Linux:

openssl$ find . -name e_os2.h
./include/openssl/e_os2.h

openssl$ cd apps

apps$ ls ../include/openssl/e_os2.h
../include/openssl/e_os2.h

Поскольку относительный путь ../include/openssl/e_os2.h и исходный файл #include "openssl/e_os2.h", вам нужно только включить ../include, используя -I.


Я использую 32-разрядный двоичный файл в 64-разрядной системе ...

Вам необходимо собрать OpenSSL как 32-битный.Запустите ./Configure LIST, чтобы получить список целей MinGW.Затем настройте с помощью соответствующей тройки.

Возможно, вам потребуется добавить -m32 в командную строку вашей программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...