簡體   English   中英

C++ 和 CPLEX 以及 Linux 和 Visual Studio Code:將路徑添加到 includePath 后出現“沒有這樣的文件或目錄”錯誤

[英]C++ and CPLEX and Linux with Visual Studio Code: "No such file or directory" error after adding paths to includePath

我一直在嘗試運行 Linux 中的一些 CPLEX C++示例,但沒有成功。 這是我遵循的步驟:

1 - 我為 Linux 安裝了 CPLEX studio (cplex_studio2210.linux_x86_64.bin)

2 - 我還安裝了 Visual Studio Code (code_1.74.2-1671533413_amd64.deb) +“C/C++”擴展

然后我嘗試運行 CPLEX 安裝路徑 (<my_cplex_path>/CPLEX_Studio221/cplex/examples/src/cpp) 中的一些示例。 因此,我將其中一個文件的代碼復制到 Visual Studio Code 中的新項目 c++ 中。 准確地說是這個 它包含以下“include”行(所有示例文件都包含類似的“include”行,因此任何其他行也會導致相同的問題):

#include <ilcplex/ilocplex.h>

所以我將我的 cplex 路徑添加到我的 c_cpp_properties.json 中的 includePath,如下所示:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/home/my_user/ILOG/CPLEX_Studio221/cplex/include/**",
                "/home/my_user/ILOG/CPLEX_Studio221/concert/include/**"
            ],
            .............
        }
    ],
    "version": 4
}

開始構建... /usr/bin/g++ -fdiagnostics-color=always -g /my_path/example.cpp -o /my_path/example /my_path/example.cpp:1:10: fatal error: ilcplex/ilocplex.h : 沒有這樣的文件或目錄 1 | #include <ilcplex/ilocplex.h> | ^~~~~~~~~~~~~~~~~~~~ 編譯終止。

構建完成但有錯誤。

這是我沒想到的,因為 IntelliSense 正確識別了 .h 文件: 在此處輸入圖像描述

我缺少什么配置?

cplex安裝目錄下examples文件夾中的Makefile給出了解決方法的提示:我終於解決了在我的task.json的args部分添加幾個參數。

我修改了這個原始任務。json:

{
            "type": "cppbuild",
            "label": "C/C++: cpp build active file",
            "command": "/usr/bin/cpp",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            ....

對此:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-I/my_installation_directory/ILOG/CPLEX_Studio221/concert/include",
                "-I/my_installation_directory/ILOG/CPLEX_Studio221/cplex/include",
                "-L/my_installation_directory/ILOG/CPLEX_Studio221/cplex/lib/x86-64_linux/static_pic",
                "-L/my_installation_directory/ILOG/CPLEX_Studio221/concert/lib/x86-64_linux/static_pic",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-lconcert",
                "-lilocplex",
                "-lcplex",
                "-lm",
                "-lpthread",
                "-ldl"
            ],
            .....

當我單擊運行按鈕時,是什么讓 Visual Studio Code 執行類似於以下的命令:

g++-m64-fPIC-fno-strict-aliasing-fexceptions-DNDEBUG-I/my_installation_directory/ILOG/CPLEX_Studio221/concert/include-I/my_installation_directory/ILOG/CPLEX_Studio221/cplex/include-L/my_installation_directory/ILOG/CPLEX_Studio/221/cplex lib/x86-64_linux/static_pic -L/my_installation_directory/ILOG/CPLEX_Studio221/concert/lib/x86-64_linux/static_pic -g /my_installation_directory/examples/cutstock.cpp -o /my_installation_directory/examples -lconcert -lilocplex -lcplex -lm - lpthread -ldl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM