无法编译我的代码 我有一个C++代码,但是我没有达到用 -static < />代码编译的目的。这是我的密码: #include <iostream> #include <optimization.h> int main(){ std::cout << opti::minimize(1,2) << std::endl; return EXIT_SUCCESS; }

无法编译我的代码 我有一个C++代码,但是我没有达到用 -static < />代码编译的目的。这是我的密码: #include <iostream> #include <optimization.h> int main(){ std::cout << opti::minimize(1,2) << std::endl; return EXIT_SUCCESS; },c++,c++11,c++14,C++,C++11,C++14,它可以工作,但当我键入: g++ main.cpp -loptimization -static -std=c++11 它不起作用我一点也不明白为什么 我明白了: /usr/bin/ld: cannot find -loptimization collect2: error: ld returned 1 exit status 编辑: 有时,g++或gcc编译器的选项顺序很重要(我的意思是,我已经在链接库中遇到了这种问题),然后我认为您应该尝试其他顺序,如: g++ -static -std

它可以工作,但当我键入:

g++ main.cpp -loptimization -static -std=c++11
它不起作用我一点也不明白为什么

我明白了:

/usr/bin/ld: cannot find -loptimization
collect2: error: ld returned 1 exit status
编辑: 有时,g++或gcc编译器的选项顺序很重要(我的意思是,我已经在链接库中遇到了这种问题),然后我认为您应该尝试其他顺序,如:

g++ -static -std=c++11 main.cpp -loptimization

从:

-静态
在支持动态链接的系统上,这会阻止和共享库的链接。在其他系统上,此选项没有 效应(……)


这意味着您可能没有安装库的静态版本。您应该检查
/usr/lib
/usr/local/lib
。动态库以
.so
结尾,而静态库以
.a
结尾

你犯了什么错误?你们有详细的OS/linux版本吗?我有linux的MintShared对象是。所以,静态是。a。你有liboptimization.a?@FranklinWalker我在谷歌找不到liboptimization这是系统附带的库吗?你自己编译了吗?我得到了/usr/bin/ld:not find-loptimization collect2:error:ld返回了1个退出状态我想你没有liboptimization尝试sudo apt获得安装libx11 dev和更改#虽然欢迎使用此代码片段,并可能提供一些帮助,但这将是它如何解决问题的关键。如果没有这些,你的答案就没有什么教育价值——记住,你是在将来为读者回答这个问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。哦,是的,对此表示抱歉。。。我要编辑我的答案!
g++ -static -std=c++11 main.cpp -loptimization
g++ -static -loptimization -std=c++11 main.cpp