C++ 此声明不能包含外部“C”链接

VS2019上安装PCL库,对VS配置环境完成之后进行测试,代码粘贴上之后就开始报错,安装参考文章:https://blog.csdn.net/syz201558503103/article/details/103892364%EF%BC%8C


#include<pcl/visualization/cloud_viewer.h>
#include<iostream>//标准C++库中的输入输出类相关头文件。
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
#include<pcl/io/ply_io.h>
#include<pcl/point_types.h> //PCL中支持的点类型头文件。
int user_data;
using std::cout;
 
 
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
    viewer.setBackgroundColor(1.0, 0.5, 1.0);   //设置背景颜色
}
 
int main() {
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
 
    char strfilepath[256] = "rabbit.pcd";
    if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) {
        cout << "error input!" << endl;
        return -1;
    }
 
    cout << cloud->points.size() << endl;
    pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象
 
    viewer.showCloud(cloud);
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    system("pause");
    return 0;
}
运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

加个宏把包含C函数定义的头文件括起来
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cplusplus /
#endif /
__cplusplus */
头文件
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cplusplus /
#endif /
__cplusplus */

试试

 #ifdef __cplusplus
 extern "C" {
 #endif
头文件
 #ifdef __cplusplus
 } // extern "C"
 #endif