ubuntu codeblocke 生成动态库 relocation R_X86_64_32 against `*' can not be used when making a shared .问题

在使用codeblock创建一个shared library (动态库)工程后,把相关编译环境配置好后,点击“生成”时会出现,以下错误:

relocation R_X86_64_32 against `_ZTV22CGenerateAbstractVideo' can not be used when making a shared object; recompile with -fPIC

obj/Debug/CGenerateAbstractVideo.o: 无法添加符号: 错误的值

解决办法:

项目--属性--生成选项--其他编译器选项:添加“-fPIC”,确定即可,如下图所示:

ubuntu codeblocke 生成动态库 relocation R_X86_64_32 against `*' can not be used when making a shared .问题_第1张图片

 

ubuntu codeblocke 生成动态库 relocation R_X86_64_32 against `*' can not be used when making a shared .问题_第2张图片

ubuntu codeblocke 生成动态库 relocation R_X86_64_32 against `*' can not be used when making a shared .问题_第3张图片

注:如果重新生成时仍然出现上述错误时,则可以先清理该工程,然后再重新生成即可。

 

 

 

你可能感兴趣的:(开发中遇到的问题)