yourbrotherSankin 2020-10-17 16:18 采纳率: 0%
浏览 578

mac xcode运行出现clang error:linker command failed with exit code 1 (use -v to see invocation)

图片说明

尝试了csdn上许多种方法都不行,想知道这是什么原因造成的,困扰我很久了!
有大神可以教教我吗?不胜感激,我之前是配置过opencv库的,opencv已经配置好了
但是一直不可以运行

以下是我的代码,这是没问题的,就是clang 的问题


#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui_c.h>

using namespace std;
using namespace cv;

int main(int argc, const char * argv[]) {



    Mat src;
    src = imread("Users/sankin/Desktop/3F9A4165.jpg");
    if (src.empty()) {
        cout<<"could not load image..."<<endl;
    }

    namedWindow("input",CV_WINDOW_AUTOSIZE);
    imshow("input", src);

    //--------------------------------------------------

    Mat dst;
    dst =Mat(src.size(),src.type());
    dst = Scalar(0,0,0);

    namedWindow("output",CV_WINDOW_AUTOSIZE);
    imshow("output", dst);



    waitKey(0);
    return 0;

}

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 03:06
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    根据您提供的代码和错误信息,我观察到的问题可能与Clang编译器有关。以下是可能导致Clang无法正确链接的问题的一些常见原因:

    1. 您的opencv2/opencv.hpp文件可能包含了一些不必要的宏或头文件。
    2. opencv2/opencv.hpp中的某些头文件可能被其他库依赖,导致在构建时找不到它们。
    3. 在您的项目中,可能有其他库(例如OpenCV)使用了相同的命名空间或包,导致冲突。

    为了解决这些问题,您可以采取以下步骤:

    1. 打开CMakeLists.txt文件,并检查find_package(opencv REQUIRED)指令是否正确设置。确保opencv库已经被添加到项目中,并且路径设置正确。
    cmake_minimum_required(VERSION 3.11)
    
    find_package(opencv REQUIRED)
    
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/opencv/include/)
    add_executable(main ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
    
    target_link_libraries(main opencv::cv opencv::highgui)
    
    1. 检查是否有其他库在使用相同命名空间或包。如果有的话,请考虑将这些库替换为支持更高版本兼容性的库,或者更改库名称以避免冲突。

    2. 确保没有遗漏任何必要的头文件。在CMakeLists.txt中,使用find_package指令来查找并安装所需的库。

    # Check that the necessary headers are present in the project directory
    find_package(CheckCIncludePath NAMES "opencv" REQUIRED)
    if (CHECK_C_INCLUDE_PATH_RESULT_IS_ERROR)
        message(FATAL_ERROR "Error occurred while checking include paths for OpenCV")
    endif()
    
    # Add necessary libraries to CMakeLists.txt
    add_library(cv_core SHARED opencv::cv opencv::highgui)
    target_link_libraries(cv_core opencv::cv opencv::highgui)
    

    如果您仍然遇到问题,请提供更多的关于您的环境、如何构建项目的详细信息以及具体的错误消息,以便更准确地帮助您解决问题。

    评论

报告相同问题?