我专门构建了一个测试程序来处理Chaiscript,这就是我遇到这个问题的方法:
chai.cpp:
#include <cstdio>
#include <iostream>
#include <chaiscript/chaiscript.hpp>
#include <chaiscript/chaiscript_stdlib.hpp>
std::string helloWorld(const std::string &t_name)
{
return "Hello " + t_name + "!";
}
int main(int argc, char** argv, char** env) {
chaiscript::ChaiScript chai;
chai.add(chaiscript::fun(&helloWorld), "helloWorld");
chai.eval("puts(helloWorld(\"Bob\"));");
return 0L;
}
/usr/lib/gcc/i686-pc-cygwin/5.4.0/../../../../i686-pc-cygwin/bin/as: CMakeFiles/chai.dir/src/chai.cpp.o: too many sections (37830)
/tmp/ccqGbeku.s: Assembler messages:
/tmp/ccqGbeku.s: Fatal error: can't write CMakeFiles/chai.dir/src/chai.cpp.o: File too big
/usr/lib/gcc/i686-pc-cygwin/5.4.0/../../../../i686-pc-cygwin/bin/as: CMakeFiles/chai.dir/src/chai.cpp.o: too many sections (37830)
当我在Mac或Linux上构建时,此问题不会出现。
答案 0 :(得分:0)
我从Chaiscript CMakeLists.txt发现了这个问题的解决方法:
if(MINGW OR CYGWIN)
add_definitions(-O3)
endif()
互联网上的其他搜索意味着这个大对象问题与Windows可执行格式相关联,并且不太可能在G ++中解决。在我的情况下使用MingW32没有解决这个错误 - 我不会使用64位。