相关疑难解决方法(0)

我应该用/ MD或/ MT编译吗?

在Visual Studio中,有编译标志/ MD和/ MT,可让您选择所需的C运行时库类型.

我理解实现方面的差异,但我仍然不确定使用哪一个.有哪些优点/缺点?

我听说过/ MD的一个优点是,这允许有人更新运行时(比如修补安全问题),我的应用程序将从此更新中受益.虽然对我而言,这几乎看起来像一个非特征:我不希望人们改变我的运行时而不允许我测试新版本!

我很好奇的一些事情:

  • 这会如何影响构建时间?(据推测/ MT有点慢?)
  • 其他含义是什么?
  • 大多数人使用哪一个?

c++ msbuild crt msvcrt visual-studio

117
推荐指数
6
解决办法
8万
查看次数

如何在exe中包含所有dll?

我有一个Visual Studio 12项目; 用C++编写的源代码; 这是一个OpenCV项目.我想将我编译的程序提供给其他人,但是,在其他PC上,我收到有关丢失一些dll的错误消息.我的程序使用了许多OpenCV(也许,不仅仅是)dll.我该如何解决这个问题? 也许在VS 12中可以选择在.exe中包含所有dll? 这是一个非常类似的问题没有正确答案: 在visual studio c ++ 2008中包含dll

c++ dll opencv exe visual-studio-2012

7
推荐指数
2
解决办法
3万
查看次数

什么时候printf()和scanf()函数静态或动态链接到应用程序?

当编译C程序时,它按照预处理器,编译器,汇编器,链接器的顺序进行.其中一项主要任务linker是为您的程序提供库函数代码.链接器可以通过静态或动态两种方式链接它们.

stdio.h仅包含声明,其中不存在任何定义.我们只stdio.h在程序中包含关于返回类型和函数名称的编译器eg(printf(),scanf(),getc(),putc()...).. 然后怎么printf()scanf()链接?

  • 如果是动态链接哪个"DLL"负责链接?
  • 总"C"库是否与程序动态链接?

    #include"stdio.h"

    int main(){int n;

    printf("输入一个整数\n"); scanf("%d",&n);

    if(n%2 == 0)printf("Even \n"); else printf("Odd \n");

    返回0; }

c linker

4
推荐指数
3
解决办法
3059
查看次数

使用标准库编译静态库链接(静态)

我正在尝试编译一个静态库(让我们称之为library.a).该库消耗标准库的资源.有一些方法可以使库静态链接标准库.

我证明了这样的事情:

g++ -c library -static-libstdc++ -o library.o
ar rcs library.o library.a
Run Code Online (Sandbox Code Playgroud)

但如果我这样做,就没有标准库的链接.

然后我证明了这一点:

g++ library -static-stdlib -o library.o
ar rcs library.o library.a
Run Code Online (Sandbox Code Playgroud)

但是请我添加一个主要功能.

是否有可能通过静态链接标准库(std :: string,std :: vector,std :: cin等...)来创建静态库.

谢谢 :)

c++ g++ standard-library static-libraries c++11

4
推荐指数
1
解决办法
6149
查看次数

VS code c++:“退出代码=3221225785”

我对 VS code 完全是个新手,而且我只用 C++ 编码了大约一个月。我尝试了这个简单的程序来确保设置正确:

#include <iostream>
#include <vector>
using namespace std;

int main() {

cout << "Hello world" << endl;
vector<int> v;
return 0;

}
Run Code Online (Sandbox Code Playgroud)

运行可执行文件时没有显示任何内容。删除向量声明会使程序正常运行。

我确实发现在声明字符串时遇到了类似的问题,并且解决方案(使用 -static-libstdc++ 进行静态链接)对我有用,尽管提供解决方案的作者也不完全确定它为什么有效。

然而,由于我是菜鸟,所以我不太明白为什么静态链接解决了我的问题,即使在读完这篇文章之后,我也担心提到的一些缺点(如果绝对必须的话,建议仅静态链接,因为缺点超过优势),所以我想知道除了静态链接之外是否还有其他解决方案。

编辑:澄清 - 程序的输出现在正常显示在终端中,但在输出窗口中,仍然出现相同的退出代码。

c++ visual-studio-code

3
推荐指数
1
解决办法
8247
查看次数