是什么导致与 boost c++ 库的以下链接错误?
What causes the following linking error with the boost c++ libraries?
您好,在 cygwin 上使用 gcc 编译器编译我的程序时出现链接错误。第一张图片是 boost 文件系统库教程页面中的一个简单示例程序,我在其中将 filesystem.hpp 包含在 boost 文件夹中。下面是我尝试使用以下命令编译时链接器错误的图片:
g++ -I C:/Users/Ejer/Desktop/c++Dep/boost_1_77_0 -I C:/Users/Ejer/Desktop/c++Dep/eigen-3.4.0 -L C:/Users/Ejer/Desktop/c++Dep/boost_1_77_0/stage/lib test.cpp -o ser
在这里,我尝试使用 eigen 和 boost 库编译我的程序 test.cpp,并设置他们告诉我设置的包含程序路径作为我使用 b2.exe 构建库后的路径。我还链接到 lib 文件以进行提升。我还尝试专门链接到不同的文件系统 lib 文件。提前致谢
#include <iostream>
#include <boost/filesystem.hpp>
using std::cout;
using namespace boost::filesystem;
int main(int argc, char* argv[])
{
if (argc < 2)
{
cout << "Usage: tut3 path\n";
return 1;
}
path p (argv[1]);
try
{
if (exists(p))
{
if (is_regular_file(p))
cout << p << " size is " << file_size(p) << '\n';
else if (is_directory(p))
{
cout << p << " is a directory containing:\n";
for (directory_entry& x : directory_iterator(p))
cout << " " << x.path() << '\n';
}
else
cout << p << " exists, but is not a regular file or directory\n";
}
else
cout << p << " does not exist\n";
}
catch (const filesystem_error& ex)
{
cout << ex.what() << '\n';
}
return 0;
}
I get a linking error when compiling my program
不,你不知道。您在 linking 程序时遇到 linking 错误,而不是在编译程序时。
原因:您没有提供库(-L C:/Users/....
告诉 link 人员去哪里搜索库;而不是 link 要搜索哪些库)。您的命令行应类似于:
g++ -I ... -L ... test1.cpp -o ser -lboost_filesystem
您好,在 cygwin 上使用 gcc 编译器编译我的程序时出现链接错误。第一张图片是 boost 文件系统库教程页面中的一个简单示例程序,我在其中将 filesystem.hpp 包含在 boost 文件夹中。下面是我尝试使用以下命令编译时链接器错误的图片:
g++ -I C:/Users/Ejer/Desktop/c++Dep/boost_1_77_0 -I C:/Users/Ejer/Desktop/c++Dep/eigen-3.4.0 -L C:/Users/Ejer/Desktop/c++Dep/boost_1_77_0/stage/lib test.cpp -o ser
在这里,我尝试使用 eigen 和 boost 库编译我的程序 test.cpp,并设置他们告诉我设置的包含程序路径作为我使用 b2.exe 构建库后的路径。我还链接到 lib 文件以进行提升。我还尝试专门链接到不同的文件系统 lib 文件。提前致谢
#include <iostream>
#include <boost/filesystem.hpp>
using std::cout;
using namespace boost::filesystem;
int main(int argc, char* argv[])
{
if (argc < 2)
{
cout << "Usage: tut3 path\n";
return 1;
}
path p (argv[1]);
try
{
if (exists(p))
{
if (is_regular_file(p))
cout << p << " size is " << file_size(p) << '\n';
else if (is_directory(p))
{
cout << p << " is a directory containing:\n";
for (directory_entry& x : directory_iterator(p))
cout << " " << x.path() << '\n';
}
else
cout << p << " exists, but is not a regular file or directory\n";
}
else
cout << p << " does not exist\n";
}
catch (const filesystem_error& ex)
{
cout << ex.what() << '\n';
}
return 0;
}
I get a linking error when compiling my program
不,你不知道。您在 linking 程序时遇到 linking 错误,而不是在编译程序时。
原因:您没有提供库(-L C:/Users/....
告诉 link 人员去哪里搜索库;而不是 link 要搜索哪些库)。您的命令行应类似于:
g++ -I ... -L ... test1.cpp -o ser -lboost_filesystem