我有一个项目需要大约8秒来链接g++和ld。它使用了一堆静态库,大部分代码都是c++。我对有关如何减少链接时间的一般提示列表感兴趣。从“不包含调试符号”到“让你的代码少一些意大利面条” 最佳答案 我在以前的工作中处理了很多年。GNU链接器在链接大量静态库时存在严重的性能问题。在某一时刻,链接时间与编译时间相当,我们发现这很奇怪,我们实际上对此进行了调查并弄清楚了。您可以尝试在链接之前将您的静态库合并为“super对象”。而不是这样的链接:$g++-oprogramprogram.o$STATIC_LIBS你可以试试这个:$ld-r-
我有一个小问题:我必须打开一个具有.a扩展名的链接器文件。我使用Dev-C++。 最佳答案 .a文件是对象(.o)文件的ar文件(类似于zip文件)。您可以使用ar程序列出.a文件中的文件:artfile.a并提取所有文件:arxfile.a 关于c++-如何打开.a文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2703629/
我有一个小问题:我必须打开一个具有.a扩展名的链接器文件。我使用Dev-C++。 最佳答案 .a文件是对象(.o)文件的ar文件(类似于zip文件)。您可以使用ar程序列出.a文件中的文件:artfile.a并提取所有文件:arxfile.a 关于c++-如何打开.a文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2703629/
我将开始声明我在Cmake问题上几乎完全是哑巴。我有以下用于Kdevelop4.1项目的CMakeLists.txt:project(uart)find_package(KDE4REQUIRED)include(KDE4Defaults)include_directories(${KDE4_INCLUDES}${QT_INCLUDES}src/includesrc/include/QSerialDevce)add_subdirectory(doc)add_subdirectory(src)add_subdirectory(icons)link_directories(/usr/lib)
我将开始声明我在Cmake问题上几乎完全是哑巴。我有以下用于Kdevelop4.1项目的CMakeLists.txt:project(uart)find_package(KDE4REQUIRED)include(KDE4Defaults)include_directories(${KDE4_INCLUDES}${QT_INCLUDES}src/includesrc/include/QSerialDevce)add_subdirectory(doc)add_subdirectory(src)add_subdirectory(icons)link_directories(/usr/lib)
我知道原则上这可能是未定义的行为,但为了处理大型项目,这是我关于GCC的问题:假设我用gcc-std=c++98编译一个转换单元,另一个用-std=c++11编译,使用完全相同的编译器安装.有什么保证我可以链接两个目标文件并获得一个定义明确的程序吗?据我所知,由于宏的不同,潜在的问题只能来自库头的不同View,而那些反过来最多添加新的成员函数,但绝不是成员对象,到标准库类。这是否会让使用不同语言方言选项编译大型项目的不同部分变得可以接受?更新:我应该添加一个正交问题:使用两个不同版本的GCC(比如4.3和4.6)怎么样,但相同方言选项(-std=c++98)?上市inthisGCCdo
我知道原则上这可能是未定义的行为,但为了处理大型项目,这是我关于GCC的问题:假设我用gcc-std=c++98编译一个转换单元,另一个用-std=c++11编译,使用完全相同的编译器安装.有什么保证我可以链接两个目标文件并获得一个定义明确的程序吗?据我所知,由于宏的不同,潜在的问题只能来自库头的不同View,而那些反过来最多添加新的成员函数,但绝不是成员对象,到标准库类。这是否会让使用不同语言方言选项编译大型项目的不同部分变得可以接受?更新:我应该添加一个正交问题:使用两个不同版本的GCC(比如4.3和4.6)怎么样,但相同方言选项(-std=c++98)?上市inthisGCCdo
考虑这个文件,first.cpp,包含一个类定义和使用:#includestructFoo{Foo(){std::cout另一个,second.cpp,包含一个冲突的类定义:#includestructFoo{Foo();~Foo();};Foo::~Foo(){std::cout当定义了两个具有相同名称的函数时,链接器会提示重复符号,但是这些具有重复类方法的文件编译时不会出错。我用这些命令编译:$g++-csecond.cpp-osecond$g++secondfirst.cpp-ofirst对第二个g++调用的参数重新排序不会改变输出。当first运行时,输出如下:$./first
考虑这个文件,first.cpp,包含一个类定义和使用:#includestructFoo{Foo(){std::cout另一个,second.cpp,包含一个冲突的类定义:#includestructFoo{Foo();~Foo();};Foo::~Foo(){std::cout当定义了两个具有相同名称的函数时,链接器会提示重复符号,但是这些具有重复类方法的文件编译时不会出错。我用这些命令编译:$g++-csecond.cpp-osecond$g++secondfirst.cpp-ofirst对第二个g++调用的参数重新排序不会改变输出。当first运行时,输出如下:$./first
我是boost新手-你能告诉我黑白有什么区别吗boostlib的以下变体以及在哪种情况下我需要链接到哪个变体?libboost_unit_test_framework-vc80-1_35.liblibboost_unit_test_framework-vc80-gd-1_35.liblibboost_unit_test_framework-vc80-mt-1_35.liblibboost_unit_test_framework-vc80-mt-gd-1_35.liblibboost_unit_test_framework-vc80-mt-s-1_35.liblibboost_unit_