小编Ale*_*lex的帖子

Maven [警告] 参数“localRepository”是已弃用的核心表达式...什么?

最新版本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.

我该怎么做才能避免此警告?

maven

10
推荐指数
1
解决办法
7471
查看次数

gcc编译C++代码:未定义引用`operator new [](unsigned long long)'

有一个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/).

问题是:

  1. 最后两个命令中哪一个更好?
  2. 在我看来,gcc正确选择正确的编译器,但然后使用错误的链接器.这样对吗?
  3. 可能是minGW-win64中的一个问题?

正如我所见(纠正我,如果它是错的)gcc是一个主要程序,它接受输入并决定如何处理它.gcc如果没有它,我会更好地使用它 …

c++ gcc g++

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

g++ ×1

gcc ×1

maven ×1