Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接c++;Xcode中的库(用于Wt)_C++_Xcode_Boost_Linker Errors_Wt - Fatal编程技术网

C++ 链接c++;Xcode中的库(用于Wt)

C++ 链接c++;Xcode中的库(用于Wt),c++,xcode,boost,linker-errors,wt,C++,Xcode,Boost,Linker Errors,Wt,很抱歉,我问了一个问题,这个问题以不同的形式重新出现在各地,但这让我毛骨悚然,我尝试了互联网上所有黑暗角落的每一个建议 我试图使用XCODE使用WT框架(基于Web的C++应用程序)。它的头文件位于/usr/local/include,它的库文件(和boost)位于/usr/local/lib。我可以在终端用 gcc -o hello testWt.cpp -lstdc++ -lwt.3.3.0 -lwthttp.3.3.0 -lboost_random -lboost_regex -lboos

很抱歉,我问了一个问题,这个问题以不同的形式重新出现在各地,但这让我毛骨悚然,我尝试了互联网上所有黑暗角落的每一个建议

我试图使用XCODE使用WT框架(基于Web的C++应用程序)。它的头文件位于/usr/local/include,它的库文件(和boost)位于/usr/local/lib。我可以在终端用

gcc -o hello testWt.cpp -lstdc++ -lwt.3.3.0 -lwthttp.3.3.0 -lboost_random -lboost_regex -lboost_signals -lboost_system -lboost_thread -lboost_filesystem -lboost_program_options -lboost_date_time
但是在Xcode中我没有运气。我试过:

  • 将-I/usr/local/include添加到
    OTHER_C++\u标志
    选项中
  • 将/usr/local/lib添加到
    库搜索路径
    选项
  • 标题搜索路径添加/usr/local/include
  • 将所有库(包括.dylib和/或.a版本)拖动到“使用库链接二进制文件”部分
  • 上述各项的所有组合
现在,我正对着这个链接器错误大发雷霆:

Ld /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug/Test normal x86_64
cd /Users/charles/tmp/Test
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug -L/usr/local/lib -F/Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug -filelist /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test.LinkFileList -mmacosx-version-min=10.7 -stdlib=libc++ -lwt.3.3.0 -lwthttp.3.3.0 -lboost_atomic -lboost_chrono -lboost_context -lboost_date_time -lboost_exception -lboost_filesystem -lboost_graph -lboost_iostreams -lboost_locale -lboost_math_c99 -lboost_math_c99f -lboost_math_c99l -lboost_math_tr1 -lboost_math_tr1f -lboost_math_tr1l -lboost_prg_exec_monitor -lboost_program_options -lboost_python -lboost_random -lboost_regex -lboost_serialization -lboost_signals -lboost_system -lboost_test_exec_monitor -lboost_thread -lboost_timer -lboost_unit_test_framework -lboost_wave -lboost_wserialization -o /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug/Test

Undefined symbols for architecture x86_64:

  "Wt::WApplication::makeAbsoluteUrl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const", referenced from:
  vtable for HelloApplication in main.o

ld: symbol(s) not found for architecture x86_64
Ld/Users/charles/Library/Developer/Xcode/DerivedData/Test dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug/Test normal x86_64
cd/Users/charles/tmp/Test
setenv MACOSX_部署_目标10.7
/Applications/Xcode.app/Contents/Developer/toolschains/Xcode default.xtoolschain/usr/bin/clang++-arch x86_64-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk-L/Users/charles/Library/Developer/DerivedData/Test Dzrqjofmpnjowvctscacpwnhtqw/Build/Products/Debug-L/usr/local/lib-F/Users/charles/Library/Developer/Xcode/DerivedData/Test dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug-filelist/Users/charles/Library/Developer/Xcode/DerivedData/Test dzrqjofmpnjowvcwtscacpwnhtqw/Build/Test/Intermediates/Test.Build/Objects-normal/x8664/Test.LinkFileList-mmacosVersion min=10.7-stdlib=libc+-lwt.3.0-lwthttp.3.3.0-lboost\u原子-lboost\u计时-lboost\u上下文-lboost\u日期\u时间-lboost\u异常-lboost\u文件系统-lboost\u图-lboost\u iostreams-lboost\u区域设置-lboost\u数学\u c99-lboost\u数学\u c99f-lboost\u数学\u tr1-lboost\u数学\u tr1f-lboost\u数学\uTr1l\u选项-随机监测程序-lboost_regex-lboost_序列化-lboost_信号-lboost_系统-lboost_测试执行监控-lboost_线程-lboost_计时器-lboost_单元测试框架-lboost_波形-lboost_序列化-o/Users/charles/Library/Developer/Xcode/derivedata/test DzrqjofmpnjowvcWntscwnhtqw/Build/Products/Debug/test
架构x86_64的未定义符号:
“Wt::waapplication::makeAbsoluteUrl(std::u 1::basic_string const&)const”,引用自:
用于main.o中hello应用程序的vtable
ld:找不到架构x86_64的符号

除此之外,我无法得到更多。这是我第一次使用Xcode进行开发,所以我可能遗漏了一些明显的东西;如果有人能指出这一点,我将不胜感激

好的,我终于明白了。事实证明,问题在于我的程序是使用libc++库编写的,而Wt库是使用旧的libstdc++构建的

为了解决这个问题,我改为使用libc++重新编译boost和Wt,方法是更改它们的CMakeLists.txt文件,添加行
集合(CMAKE_CXX_FLAGS“-std=c++11-stdlib=libc++”)
。这产生了一大堆警告,但似乎奏效了


安装这些新的构建后,我确定Xcode在其其他C++标志选项中有<代码> -/Urr/Orr/Irr/Irr/Posial/Is/Cuth>和“代码查找> /Ur/Studio”,包含“<代码/ > >代码> /Ur/Studio/LIB < /代码>,分别在“头搜索路径”和“库搜索路径”中。然后,我将这些库添加到“用库链接二进制文件”部分。这解决了我的问题。

您确定使用相同的目标环境吗?很抱歉,我没有使用xcode的经验,但您的错误似乎与跨平台问题有关?是的,所有库都建立在同一台计算机上。我最终解决了这个问题(见下面的答案):这是因为这些库是用不同的标准库构建的。