最新版本maven-assembly-plugin给出了以下警告:
[INFO] --- assembly:3.5.0:single (default) @ my-project ---
[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.
Run Code Online (Sandbox Code Playgroud)
我<localRepository>的settings.xml.
我该怎么做才能避免此警告?
有一个C++代码:
#include <stdio.h>
int main() {
int b = sizeof('a');
if(b==4) printf("I'm a C program!\n");
else printf("I'm a C++ program!\n");
}
Run Code Online (Sandbox Code Playgroud)
像这样编译它:
gcc main.cpp -o main
Run Code Online (Sandbox Code Playgroud)
它成功并给出:
I'm a C++ program!
Run Code Online (Sandbox Code Playgroud)
然后在函数内部的某处添加一行 main
int *p1 = new int [1000];
Run Code Online (Sandbox Code Playgroud)
它失败了:
C:\Users\...\AppData\Local\Temp\cccJZ8kN.o:main1.cpp:(.text+0x1f): undefined reference to operator new[](unsigned long long)'
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
然后以下两个命令成功编译代码:
gcc main.cpp -o main -lstdc++
Run Code Online (Sandbox Code Playgroud)
和
g++ main.cpp -o main
Run Code Online (Sandbox Code Playgroud)
编译器是minGW-win64(http://mingw-w64.sourceforge.net/).
问题是:
gcc正确选择正确的编译器,但然后使用错误的链接器.这样对吗?正如我所见(纠正我,如果它是错的)gcc是一个主要程序,它接受输入并决定如何处理它.gcc如果没有它,我会更好地使用它 …