Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用“英特尔aes API”时出错_C_Eclipse_Api_Aes_Static Libraries - Fatal编程技术网

C 使用“英特尔aes API”时出错

C 使用“英特尔aes API”时出错,c,eclipse,api,aes,static-libraries,C,Eclipse,Api,Aes,Static Libraries,我正在ubuntu操作系统中使用EclipseCDT。我有一个API(英特尔Aes NI),我正在工作。我已经运行了shell文件(mk_lnx64_all.sh)来构建API并获取库(.a文件)。生成的库文件位于文件夹:/path/to/Intel\u AESNI\u Sample\u library\u v1.2/Intel\u aes\u lib/lib/x64/中。我需要运行一个名为aessample.c的源文件,它的main()来自/path/到/Intel\u AESNI\u Sam

我正在ubuntu操作系统中使用EclipseCDT。我有一个API(英特尔Aes NI),我正在工作。我已经运行了shell文件(mk_lnx64_all.sh)来构建API并获取库(.a文件)。生成的库文件位于文件夹:/path/to/Intel\u AESNI\u Sample\u library\u v1.2/Intel\u aes\u lib/lib/x64/中。我需要运行一个名为aessample.c的源文件,它的main()来自/path/到/Intel\u AESNI\u Sample\u Library\u v1.2/Intel\u aes\u lib/src/。我在eclipse设置中将路径和库名添加为intel_aes64(不带.a扩展名)。但当我构建项目时,仍然会出现如下错误:

 make all 
Building target: Intel
Invoking: GCC C Linker
gcc -L/home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/lib/x64 -o "Intel"  ./src/aessample.o ./src/intel_aes.o   -lintel_aes64
/usr/bin/ld: cannot find -lintel_aes64
collect2: error: ld returned 1 exit status
make: *** [Intel] Error 1 
我尝试使用terminal执行以下命令:

gcc -I/home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/include intel_aes.c -L/home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/lib/x64 -lintel_aes64
即使上述命令也会给出如下错误:

/usr/bin/ld: cannot find -lintel_aes64
collect2: error: ld returned 1 exit status

我不知道如何从internet下载它,并使用以下命令安装它:apt get install xxx dev,以便在/usr/local/lib中安装库。我哪里做错了?请帮助我。

-lname
libname.a
的缩写(或其他库后缀,如
libname.dylib
)。要使用不以
lib
开头的库文件,只需指定指向该库文件的路径,与使用源文件或对象文件时所做的相同。(在这种情况下,您也不需要
-L
,因为它指定了使用
-L
时要搜索的路径。)因此您可以使用以下命令:

gcc -I/home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/include intel_aes.c /home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/lib/x64/intel_aes64.a

-lname
libname.a
(或其他库后缀,如
libname.dylib
)的缩写。要使用不以
lib
开头的库文件,只需指定指向该库文件的路径,与使用源文件或对象文件时所做的相同。(在这种情况下,您也不需要
-L
,因为它指定了使用
-L
时要搜索的路径。)因此您可以使用以下命令:

gcc -I/home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/include intel_aes.c /home/xxx/Documents/Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/lib/x64/intel_aes64.a

我知道我必须这么做

手动将make/shell/可执行文件生成的文件从“intel_aes64.a”重命名为“libintel_aes64.a”


然后,为了使其在eclipse中工作,将其路径和库名称添加为“intel_aes64”(通过排除lib前缀和.a扩展名,这是一种常用的方法)。因为编译器只将以“lib”开头的文件视为库文件。

我发现我必须这样做

手动将make/shell/可执行文件生成的文件从“intel_aes64.a”重命名为“libintel_aes64.a”


然后,为了使其在eclipse中工作,将其路径和库名称添加为“intel_aes64”(通过排除lib前缀和.a扩展名,这是一种常用的方法)。由于编译器只将以“lib”开头的文件视为库文件。

谢谢您的回复……我尝试编译您提供的命令,但它仍然给出了如下错误:xxx@ubuntu:~/workspace/AES-NI/src$gcc-I/home/xxx/Documents/Intel\u AESNI\u Sample\u Library\u v1.2/Intel\u AES\u lib/include Intel\u AES.c/home/xxx/Documents/Intel\u AESNI\u Sample\u lib/lib/x64/Intel\u aes64。gcc:错误:Intel\u AES.c:没有这样的文件或目录gcc:错误:/home/Anvesh/Documents/Intel_AESNI_Sample_Library_v1.2/Intel_aes_lib/lib/x64/Intel_aes64。a:没有这样的文件或目录gcc:致命错误:没有输入文件编译终止。@annonarcist:您需要为您的系统使用正确的路径。感谢您的回复……我尝试编译了您提供的命令,但它仍然给出了如下错误:xxx@ubuntu:~/workspace/AES-NI/src$gcc-I/home/xxx/Documents/Intel\u AESNI\u Sample\u Library\u v1.2/Intel\u AES\u lib/include Intel\u AES.c/home/xxx/Documents/Intel\u AESNI\u Sample\u lib/lib/x64/Intel\u aes64。gcc:错误:Intel\u AES.c:没有这样的文件或目录gcc:错误:/home/Anvesh/Documents/Intel_AESNI_Sample_Library_v1.2/Intel_aes_lib/lib/x64/Intel_aes64。a:没有这样的文件或目录gcc:致命错误:没有输入文件编译终止。@annaurcist:您需要为系统使用正确的路径。