图书馆未链接的原因?

时间:2018-07-16 17:16:48

标签: c windows gcc linker openssl

我正在使用 openssl 函数,并尝试使用以下程序中的tricore-gcc将程序链接到 -lssl -lcrypto HighTec Developement Platform(基于Eclipse)。

使用命令链接:

OBJ=file1.o file2.o file3.o .... tricore-gcc $(LDFLAGS) $(DIR_TO_LIBS) -v -t -o output.elf $(OBJ) -lssl -lcrypto

输出错误:undefined reference to 'ERR_print_errors_fp'

DIR_TO_LIBS=-LC:\OpenSSL-Win32\lib which contains the libcrypto.lib libssl.lib

LDFLAGS=-Tld/iRAM.ld -Wl,--no-warn-flags -Wl,-n -Wl,--gc-sections

此外, -t 标志还提供了一些其他输出信息:

[some_path]/tricore/bin/ld.exe: mode elf32tricore
[some_path]/lib/gcc/tricore/4.9.4/tc161/crti.o
[some_path]/lib/gcc/tricore/4.9.4/tc161/crtbegin.o
[some_path]/lib/gcc/tricore/4.9.4/crt0-tc27xx.o
file1.o
file2.o
file3.o
/***** some more filesX.o ******/
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_ashldi3.o
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_lshrdi3.o
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)memcpy.o
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)memcmp.o
/***** more files.o ******/
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_ge_df.o
fileX.o: In function 'handleErrors':0
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_lt_df.o
fileX.c:(.text.handleErrors+0xa): error: undefined reference to 'ERR_print_errors_fp'
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_le_df.o
collect2.exe: error: ld returned 1 exit status
([some_path]/lib/gcc/tricore/4.9.4/tc161\libgcc.a)_si_to_df.o
/***** more .o files ******/

我看到其中包含libgcc库,但是我的libcrypto和libssl没有出现。

我确实使用普通的gcc编译器并使用相同的标志测试了代码-正常工作,并且在与 -t 标志链接时出现了库。

有人知道我在做什么错吗?

0 个答案:

没有答案