如果我想创建一个与静态库链接的C ++程序,那么最终的可执行文件将包含来自我的程序和库的代码(我想是这样的...!),但是当我链接共享库时会发生什么还不太确定。
假设我链接名为
假设我链接名为
libfoo.so
的库,通过在我的CMakeLists.txt
文件中指定target_link_libraries(${PROJECT_NAME} foo)
一行。我假设最终的可执行文件将包含有关此库的某些信息,但不包含完整的代码。这个其他信息是什么?此外,用户系统上的库必须被称为libfoo.so
吗?
main
的第一条语句之后的声明。标准中的措辞同样具有误导性,我想唯一合理的解释是“在main
的第一条语句开始之后”。 - Cheers and hth. - Alfreadelf
读取ELF可执行文件的头文件。特别是,您需要使用-d
和-s
开关来分别显示动态部分和符号表。 - alvits