相关疑难解决方法(0)

R_X86_64_32S和R_X86_64_64重定位是什么意思?

当我尝试在64位FreeBSD中编译C应用程序时出现以下错误:

在制作共享对象时不能使用重定位R_X86_64_32S; 用-fPIC重新编译

什么是R_X86_64_32S搬迁,什么是R_X86_64_64

我已经用Google搜索了错误,这可能是原因 - 如果有人能说出R_X86_64_32S的真正意义,那就太好了.

c compiler-construction linker elf relocation

49
推荐指数
3
解决办法
3万
查看次数

在makefile中创建一个库文件然后编译

我的问题很简单,但我只是不知道如何解决它。如果我不使用 make 文件,我知道如何编译和库并链接它,因为这样我就可以单独调用 ar 并且一切正常。

无论如何,我使用的是petsc库,我使用的是他们提供的 makefile:

CFLAGS          = 
FFLAGS          = 
CPPFLAGS        = 
FPPFLAGS        =
LOCDIR          = /home/user/.../.../   # Working folder
EXAMPLESC       = main.cpp class.cpp        #.cpp file names here
EXAMPLESF       =
#MANSEC          = Mat I don't know what this is but it seems to work without it.

include ${PETSC_DIR}/conf/variables
include ${PETSC_DIR}/conf/rules

myProgram: main.o class.o  chkopts
    -${CLINKER}  -o myProgram main.o class.o ${PETSC_MAT_LIB}
    ${RM} main.o class.o

include ${PETSC_DIR}/conf/test
Run Code Online (Sandbox Code Playgroud)

ARFLAGS 将 -rv 作为默认值,所以我应该在哪里提供这样的信息

ar -rv libclassdll.a class.o
Run Code Online (Sandbox Code Playgroud)

我应该在哪里添加 -L./-lclassdll ?

我是一个使用 …

c++ makefile g++ mpic++

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×1

c++ ×1

compiler-construction ×1

elf ×1

g++ ×1

linker ×1

makefile ×1

mpic++ ×1

relocation ×1