GCC4.7在“ __attribute __((可见性:(“默认”)))”上显然失败了

时间:2019-05-13 11:00:32

标签: gcc4.7

我使用CMake构建项目。使用Windows上的MSVC以及GCC 4.4(红色帽子)或GCC 5.8(ubuntu),我没有收到任何错误。 但是,当我使用GCC 4.7或5.8(红色帽子)进行构建时,对于单个文件我会遇到一些奇怪的错误:

  

gcc:错误:(((可见性:没有这样的文件或目录

     

gcc:错误:(“默认”)))):没有这样的文件或目录

有人知道导致这种现象的原因吗?

来源

文件:bar.c

#include <mex.h>

void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[] )
{
}

文件:CMakeLists.txt

cmake_minimum_required( VERSION 3.12 )

# Project name and version
project( foo )
set( RFC_VERSION_MAJOR "0" )
set( RFC_VERSION_MINOR "2" )

find_package( Matlab QUIET REQUIRED COMPONENTS MX_LIBRARY )

# set up matlab libraries
include_directories( ${Matlab_INCLUDE_DIRS} )

# MEX function (MATLAB)
matlab_add_mex( NAME ${PROJECT_NAME} SRC bar.c OUTPUT_NAME foobar )

系统

  • 系统:Red Hat Enterprise Linux Workstation,版本6.10(圣地亚哥)
  • 内核:Linux 2.6.32-754.9.1.el6.x86_64
  • 桌面:GNOME 2.28.2
  • 壳牌:tcsh 6.17.00(Astron)
  • CMake版本3.13.3
  • 编译器:gcc-5.3.0-4
  • MATLAB:R2016b

编辑

在第1072行的CMake模块FindMatlab.cmake中,我发现:

set_target_properties(${${prefix}_NAME}
  PROPERTIES
    DEFINE_SYMBOL "DLL_EXPORT_SYM=__attribute__ ((visibility (\"default\")))"
)

关于使用的编译器,可能是错误的考虑...

关于安德里亚斯

0 个答案:

没有答案