针对自定义构建的tcl85.lib的链接器错误,适用于ActiveState发行版的tcl85.lib
Linker errors against custom built tcl85.lib, works against ActiveState distribution's tcl85.lib
我们正在自己构建tcl,以便用应用程序分发我们自己的编译二进制文件。该应用程序本身链接到TCL库,并在内部使用API。
要构建TCL,我们从http://sourceforge.net/projects/tcl/获得了来源运行该蝙蝠文件。在/Win/Release_VC11中产生了预期的建筑作品,并产生输出。更具体地说,产生了TCL85.lib和TCL85.DLL。
当我们从QT C 应用程序中链接到此.lib时,我们会收到一堆链接器错误。例如:
commands.obj : error LNK2019: unresolved external symbol __imp_Tcl_AppendResult
referenced in function "int __cdecl CallQMessageBox(void *,struct Tcl_Interp *,
int,char * * const)" (?CallQMessageBox@@YAHPEAXPEAUTcl_Interp@@HQEAPEAD@Z)
但是,当我们根据ActiveState TCL分布的一部分提供的TCL85.LIB文件链接时,链接器没有任何问题并构建正常。我们验证了它在两种情况下都是TCL完全相同的版本。
我们正在使用MSVC 2012(Express Edition)来构建TCL,并且构建命令在buildall.vc.bat中保持未修改:
::set OPTS=threads
if not %SYMBOLS%.==. set OPTS=symbols
nmake -nologo -f makefile.vc release OPTS=%OPTS% %1
我们一直在尝试各种不运气的事情。
好的,弄清楚了:
我将TCL构建为32位二元而不是64位。
更换
call "D:toolsMicrosoft Visual Studio 11.0VCbinvcvars32.bat"
call "D:toolsMicrosoft Visual Studio 11.0VCbinx86_amd64vcvarsx86_amd64.bat"
并将AMD64添加到Nmake命令中
nmake -nologo -f makefile.vc release OPTS=%OPTS% %1 MACHINE=AMD64
在buildall.vc.bat中似乎已经修复了它。
相关文章:
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- JSON转换为nlohmann JSON-lib中的结构数组
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- libcpmtd.lib有什么用?
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 解析引用 |exe/dll vs lib
- 在 /usr/local/lib 下找不到库
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- VS2015 未链接用户32.lib
- 从 .lib 文件创建一个.dll文件
- 看不到文件'SDL2.lib'
- 如何使用用户定义的函数覆盖 C lib 函数,如 _sbrk?
- 如何在不需要LIBCD.lib的情况下在Visual Studio 6中编译C项目
- 可执行文件C++包括.obj,.lib和.dll吗?
- 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?
- 无法在 DLL 中链接 SDL2-static.lib
- 针对自定义构建的tcl85.lib的链接器错误,适用于ActiveState发行版的tcl85.lib