- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 OS X (clang) 上,在链接阶段,我的代码中没有找到符号 ( boost::filesystem::portable_posix_name
)。这是一个简短的代码片段,其中包含我在代码中调用的函数:
if (boost::filesystem::is_directory(settings.parent_path())
&& boost::filesystem::portable_posix_name(settings.filename().string()))
{ ... }
(如果我的代码片段中需要更多上下文,请告诉我。)
程序编译和链接时使用的链接器命令行包含以下内容:
-L/Users/administrator/boost_1_54_0/lib -lboost_filesystem
... 并且指示的路径和文件名(libboost_filesystem.a
和 libboost_filesystem.dylib
)存在于指示的路径中。
链接器找不到 Boost 函数 boost::filesystem::portable_posix_name(std::string const &)
:
Undefined symbols for architecture x86_64:
"boost::filesystem::portable_posix_name(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)"
但是,我确实看到这个函数存在于 .a
中和 .dylib
有问题的文件:
nm -m ./libboost_filesystem.a
揭示 00000000000090f0 (__TEXT,__text) external __ZN5boost10filesystem19portable_posix_nameERKSs
,并运行损坏的函数名称 __ZN5boost10filesystem19portable_posix_nameERKSs
通过 demangler 线揭示:
_boost::filesystem::portable_posix_name(std::string const&)
...我相信名称前面的下划线是正确的,因为找到的其他函数也有前面的下划线。
(.dylib
文件也包含相同的损坏字符串)。
我已经确认 .a
的架构和 .dylib
文件正确:otool -hv ./libboost_filesystem.a
显示' x86_64
' 贯穿始终(对于 .dylib
也是如此)。
为了确保确实找到并链接了库,我在编译命令行中更改了库的名称,如下所示:
-L/Users/administrator/boost_1_54_0/lib -lboost_filesystemm
(注意文件名末尾的双 mm
),只是为了确认返回了“找不到库”错误,它是:ld: library not found for -lboost_filesystemm
.我还确认了文件系统中唯一出现的 libboost_filesystem.a
和 .dylib
文件是给定 Boost 目录树中的文件(一个在 /lib
目录中,另一个大小相同且创建日期/时间几乎相同的文件在 /bin.v2
子目录中);另外,更改 -L/Users/administrator/boost_1_54_0/lib
使其成为垃圾的行会导致 ld: library not found for -lboost_filesystem
出现错误。
奇怪的是,当我 grep nm -m
boost::filesystem::is_directory
存在的输出, 后一个函数的库的符号表中没有结果出现,即使此函数没有链接器错误。这对我来说似乎非常倒退(不出现在库中的函数链接正常,但是确实出现在库中的函数给出了链接器错误?) - 但是这个问题改天再说(也许这个函数实际上会出现 undefined symbol 错误,但由于第一个 undefined symbol 错误而没有显示)。
我的问题是:为什么找不到这个符号,尽管正确的库、正确的体系结构和正确的 external
符号,正在链接?
为了回应@Sebastian 的回答,我在这里粘贴了链接器的完整命令行。此命令行由 Qt 创建(这是一个 Qt 项目)。
请注意 -lboost_filesystem
在列出所有目标文件后出现参数。
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -mmacosx-version-min=10.7 -o NewGene.app/Contents/MacOS/NewGene main.o newgenemainwindow.o newgenecreateoutput.o newgeneselectvariables.o newgenevariablesummary.o newgenetabwidget.o newgenevariablegroup.o newgenevariables.o newgenevariablegroupsscrollarea.o newgenevariablestoolboxwrapper.o newgenevariablestoolbox.o newgenevariablesummaryscrollarea.o newgenevariablesummarygroup.o kadcolumnselectionbox.o timerangebox.o newgenewidget.o uisettingsmanager.o uimodelmanager.o uidocumentmanager.o uistatusmanager.o globals.o uimanager.o settingchangeresponseindicator.o settingchangerequestindicator.o settingchangeindicator.o projectsettingchangeindicator.o globalsettingchangeindicator.o settingchangeresponseitem.o settingchangerequestitem.o settingchangeitem.o projectsettingchangeitem.o globalsettingchangeitem.o globalsettingchangerequestindicator.o globalsettingchangeresponseindicator.o globalsettingchangerequestitem.o globalsettingchangeresponseitem.o projectsettingchangerequestindicator.o projectsettingchangeresponseindicator.o projectsettingchangerequestitem.o projectsettingchangeresponseitem.o modelchangeresponse.o modelchangerequest.o modelchangeindicator.o modelchangeresponseitem.o modelchangerequestitem.o modelchangeitem.o uiprojectmanager.o newgenefilenames.o uiloggingmanager.o newgeneapplication.o uiallsettings.o uisetting.o uimessager.o uiinputproject.o uioutputproject.o uiinputmodel.o uioutputmodel.o uiallprojectsettings.o uimodel.o uiproject.o uiinputprojectsettings.o uioutputprojectsettings.o uiallglobalsettings.o uiallglobalsettings_list.o uiinputprojectsettings_list.o uioutputprojectsettings_list.o uithreadmanager.o uitriggermanager.o uimodelsettings.o uiinputmodelsettings.o uioutputmodelsettings.o eventloopthreadmanager.o workqueuemanager.o outputprojectworkqueue_base.o inputprojectworkqueue_base.o inputprojectworkqueue.o outputprojectworkqueue.o inputmodelworkqueue_base.o outputmodelworkqueue_base.o inputmodelworkqueue.o outputmodelworkqueue.o inputprojectsettingsworkqueue_base.o outputprojectsettingsworkqueue_base.o globalsettingsworkqueue_base.o inputmodelsettingsworkqueue_base.o outputmodelsettingsworkqueue_base.o globalsettingsworkqueue.o inputmodelsettingsworkqueue.o outputmodelsettingsworkqueue.o inputprojectsettingsworkqueue.o outputprojectsettingsworkqueue.o uiuidatamanager.o uiuiactionmanager.o uimodelactionmanager.o uiprojectmanagerworkqueue_base.o uiprojectmanagerworkqueue.o uiwidgetdatarefresh.o uimessagersingleshot.o modelworkqueue.o uiaction.o variablegroupsetmemberselectionchange.o kadwidgetsscrollarea.o kadspinbox.o kadcountchange.o generateoutput.o newgenedatetimewidget.o timerangechange.o newgenegenerateoutput.o generaloptions.o qrc_NewGeneResources.o moc_newgenemainwindow.o moc_newgenecreateoutput.o moc_newgeneselectvariables.o moc_newgenevariablesummary.o moc_newgenetabwidget.o moc_newgenevariablegroup.o moc_newgenevariables.o moc_newgenevariablegroupsscrollarea.o moc_newgenevariablestoolboxwrapper.o moc_newgenevariablestoolbox.o moc_newgenevariablesummaryscrollarea.o moc_newgenevariablesummarygroup.o moc_kadcolumnselectionbox.o moc_timerangebox.o moc_uisettingsmanager.o moc_uimodelmanager.o moc_uidocumentmanager.o moc_uistatusmanager.o moc_globalsettingchangerequestindicator.o moc_globalsettingchangeresponseindicator.o moc_globalsettingchangerequestitem.o moc_globalsettingchangeresponseitem.o moc_projectsettingchangerequestindicator.o moc_projectsettingchangeresponseindicator.o moc_projectsettingchangerequestitem.o moc_projectsettingchangeresponseitem.o moc_modelchangeresponse.o moc_modelchangerequest.o moc_modelchangeindicator.o moc_modelchangeresponseitem.o moc_modelchangerequestitem.o moc_modelchangeitem.o moc_uiprojectmanager.o moc_uiloggingmanager.o moc_newgeneapplication.o moc_uimessager.o moc_uiinputproject.o moc_uioutputproject.o moc_uiinputmodel.o moc_uioutputmodel.o moc_uiinputprojectsettings.o moc_uioutputprojectsettings.o moc_uiallglobalsettings.o moc_uithreadmanager.o moc_uitriggermanager.o moc_uiinputmodelsettings.o moc_uioutputmodelsettings.o moc_workqueuemanager.o moc_uiuidatamanager.o moc_uiuiactionmanager.o moc_uimodelactionmanager.o moc_kadwidgetsscrollarea.o moc_kadspinbox.o moc_newgenedatetimewidget.o moc_newgenegenerateoutput.o
-F/Users/administrator/Qt/5.1.1/clang_64/lib -L/Users/administrator/newgene/NewGeneUI/NewGene/../../NewGeneBackEnd/OSX/NewGene/DerivedData/NewGene/Build/Products/Debug -lNewGene -L/Users/administrator/boost_1_54_0/lib -lboost_filesystem -framework QtWidgets -framework QtGui -framework QtCore -framework OpenGL -framework AGL
最佳答案
在链接器命令行中,您必须将库(“-l”)放在引用该符号的目标文件之后。也许您已经这样做了,但是您遇到了另一个问题。但由于您没有显示整个命令行,我们无法知道。
关于c++ - Clang 链接器报告 "symbol not found",尽管 'nm -m' 显示该名称存在于被链接的库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599721/
@After public void afterScenario() { if (ScenarioManager.getScenario().isFailed()) {
我已将 BIRT 报告集成到 Grails 中并设计了一份报告。我的 grails 应用程序中有一个名为 startPeriod (仅限月份和年份)的参数,我想将其传递给 BIRT。然后 BIRT 调
我有一些 Oracle 报告 (.rdf),正在考虑将其转换为 BIRT 报告。有没有办法将 .rdf 文件转换为 BIRT 报告设计文件? 最佳答案 完全自动化的解决方案可能是不可能的。您可以部分自
当 gcc 4.1(使用 gcov)下一行: p = 新类; 报告为 100% 分支覆盖率 为什么? 因为启用了异常处理!!! 为了解决此问题,请指定: -fno-exceptions 在 g++
真的有好 免费 BugZilla 报告工具?我发现 Web 界面上的默认搜索选项太有限了。我最大的问题是缺少 Order By 选项(一次只有 1 个字段,可供选择的字段集非常有限)。我已经做了一些谷
是否可以在 CFMX7 上运行 ColdFusion Report builder 生成的报告? 更明确地说,是否可以将 CF7 中的报告生成引擎更改为 CF8? 最佳答案 我猜这可能很难做到。我记得
根据Lucintel发布的新市场报告,智能家居市场的未来看起来很有吸引力,在家用安全、家电、娱乐、照明、HVAC、医疗保健和厨房应用中将带来许多机遇。 由于COVID-19导致的全球经济衰退,
PHPCodeSniffer 是否生成 HTML 报告? 如果不是呢?怎么办? 目前,我可以运行 PHPCodeSniffer,但它只生成 XML 文件并在终端中显示结果。 如何在 phpunit 中
我在一个包中添加了一个简单的测试。 按照手册中的建议,我尝试让 PHPUnit 加载配置: phpunit -c /app phpunit.xml 看起来像这样:
我有两个从 csv 文件加载的数据框。基本上来自不同的环境但格式/列相似,它们的行/值可能有所不同。我想找到差异并在新的数据框中创建它们。两个数据框也将具有相同的顺序。我有 100 个要比较的文件。提
我想看看是否有办法通过 javadoc 在我的 junit 报告中包含“描述性文本”。 JUnit 4 似乎不像 TestNG 那样支持 @Test 注释的“描述”属性。 到目前为止,我所研究的只有一
我正在使用操作、 Controller 、servlet struts 框架编写 Excel 报告。该报告非常拥挤,已经有大约 10 个单独的查询。由于报告发生变化,我需要再添加大约 10 个查询。有
在放弃 Syleam 的 openerp jasper 模块后,我在 Nan Tic 的 jasper_reports 模块上苦苦挣扎。 它一直给我一个错误: File "C:\Program Fil
我希望创建一个简单的日历。每天由编码器生成条目计数并以日历样式查看。如一月、二月等。或按月显示全年。 database have date_added and encoder columns 我在将它
我必须为报告创建 MySQL 查询。 我有一个表history,它记录产品订单的状态更改。我有订单生命周期(订单流程)的以下状态:新、已确认、正在处理、已发货、已交付、已取消、已退回。订单不一定遵循此
如何将多个查询合并为一个? 例如: //Successful Sales: SELECT username, count(*) as TotalSales, sum(point) as Points
MySQL 优化技术的新手。请找到下面的 mysqltuner.pl 报告,并建议我应该更改 my.cnf 中的哪些变量以优化性能。 还有一个问题- 我无法在我的 my.cnf 中找到一些变量,例如
我想知道,我想将我的 Swing Worker 的某种形式的进度报告回主线程,以便我的界面可以使用随着进度增加而变化的标签进行更新,例如 checking 1/6... checking 2/6...
我正在尝试在“报告”>“销售”下运行 Magento Paypal 结算报告,但每次我尝试运行该报告时,我都会收到消息“由于配置为空,无法获取任何内容” 我查看了“系统”>“配置”>“销售”>“付款方
我想要一个工具来帮助创建 sql 查询(对于非 IT 人员),例如 dbforge。 我希望我们的非 IT 人员(例如运营)创建他们自己的 sql 查询。 我的第二个目标是让他们能够按需执行这些查询。
我是一名优秀的程序员,十分优秀!