小编Mic*_*ael的帖子

C++:string.empty()总是等于string ==""?

我可以假设给定

std::string str;
... // do something to str
Run Code Online (Sandbox Code Playgroud)

以下陈述是否总是如此?

(str.empty() == (str == ""))
Run Code Online (Sandbox Code Playgroud)

c++ string

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

g ++:静态和动态库应该以什么顺序链接?

假设我们有一个名为"my_app"的主要可执行文件,它使用了其他几个库:3个库是静态链接的,其他3个是动态链接的.它们应该以哪种顺序与"my_app"相关联?

但这些顺序应该以哪种顺序联系起来?

假设我们得到了依赖于libSB的libSA(如在静态A中),以及依赖于libSB的libSC:

libSA -> libSB -> libSC
Run Code Online (Sandbox Code Playgroud)

和三个动态链接库:libDA -> libDB -> libDC(libDA是基本的,libDC是最高的)

这些顺序应该链接在哪?第一个还是最后一个?

g++ ... -g libSA libSB libSC -lDA -lDB -lDC -o my_app
Run Code Online (Sandbox Code Playgroud)

看起来像现在的顺序,但是这样吗?如果任何动态库与静态库或其他方式之间存在依赖关系,该怎么办?

c++ linker shared-libraries dynamic-linking static-libraries

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

是否有解决未定义参考/未解决符号问题的一般准则?

我有几个"未定义的引用"(在链接期间)和"未解析的符号"(在dlopen之后的运行时)我工作的问题.它是一个相当大的makefile系统.

是否有一般规则和指南来链接库和使用编译器标志/选项来规避这些类型的错误?

c++ symbols reference undefined

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