![](/img/trans.png)
[英]How to fix “No such file or directory…” error due to C++ 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.