- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编译arithchk.c (来自 gdtoa 库)在 Windows 上使用在 cygwin 下运行的 Visual Studio 2013。 VS2008 一切正常,但是当我尝试切换到 VS2013 时,我遇到了这个问题:
ladanyi@WIN64-01$ echo $LIB;c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/LIB/amd64;c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/ATLMFC/LIB/amd64;c:/Program Files (x86)/Windows Kits/8.1/lib/winv6.3/um/x64;ladanyi@WIN64-01$ echo $INCLUDE;c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/INCLUDE;c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/ATLMFC/INCLUDE;c:/Program Files (x86)/Windows Kits/8.1/include/shared;c:/Program Files (x86)/Windows Kits/8.1/include/um;c:/Program Files (x86)/Windows Kits/8.1/include/winrt;ladanyi@WIN64-01$ echo $PATH:/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE:/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN:/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/Tools:/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/VCPackages:/cygdrive/c/Program Files (x86)/Windows Kits/8.1/bin/x64:/cygdrive/c/Program Files (x86)/Windows Kits/8.1/bin/x86:/usr/local/bin:/usr/bin:/bin:/usr/bin:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/intel64/ipp:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/intel64/mkl:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/Microsoft SQL Server/110/Tools/Binn:/cygdrive/c/Program Files (x86)/Microsoft SDKs/TypeScript/1.0:/cygdrive/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/cygdrive/c/Program Files/MATLAB/R2015b/binladanyi@WIN64-01$ LIB="$LIB" INCLUDE="$INCLUDE" cl -DNO_FPINIT arithchk.c -DNO_LONG_LONG -DNO_SSIZE_T /INCREMENTAL:NO /VERBOSEMicrosoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x86Copyright (C) Microsoft Corporation. All rights reserved.cl : Command line warning D9035 : option 'V' has been deprecated and will be removed in a future releasearithchk.cMicrosoft (R) Incremental Linker Version 12.00.40629.0Copyright (C) Microsoft Corporation. All rights reserved./out:arithchk.exe arithchk.obj arithchk.obj : error LNK2001: unresolved external symbol _asinarithchk.obj : error LNK2001: unresolved external symbol _exparithchk.obj : error LNK2001: unresolved external symbol _logarithchk.obj : error LNK2001: unresolved external symbol _sqrtarithchk.obj : error LNK2001: unresolved external symbol _acosarithchk.obj : error LNK2019: unresolved external symbol ___iob_func referenced in function _mainarithchk.obj : error LNK2019: unresolved external symbol _fprintf referenced in function _mainarithchk.obj : error LNK2019: unresolved external symbol _printf referenced in function _ccheckarithchk.obj : error LNK2019: unresolved external symbol __errno referenced in function _mainarithchk.obj : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function _Lcheckarithchk.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function _Lcheckarithchk.obj : error LNK2001: unresolved external symbol __fltusedLINK : error LNK2001: unresolved external symbol _mainCRTStartuparithchk.exe : fatal error LNK1120: 13 unresolved externals
LIB、INCLUDE 和 PATH 设置为我在命令窗口中运行 vcvarsall.bat 时的结果。
我只是不明白为什么这些符号未解析,并且非常感谢任何帮助。
谢谢,——拉奇
更新
如果我打开 DOS 命令提示符,运行 vcvarsall.bat,然后编译,那么它就可以正常工作。请注意,运行 vcvarsall.bat 并执行 echo %LIB%
和 echo %INCLUDE%
后,我得到与上面相同的值。所以问题出在与 cygwin 交互的某个地方,只是我不知道在哪里,但是:-(...
最佳答案
Cygwin 默认将 前缀 /usr/local/bin:/usr/bin
到 PATH,并且错误很可能是由于 Cygwin 的 GNU 链接工具无论您如何设置环境都可以使用。您可以使用 echo $PATH
以及 link --version
或 which link
进行验证。1
如果是这种情况,请在 ~/.bash_profile
中定义 PATH 变量,以便首先找到 MSVC 链接器。由于 Cygwin 将其启动时的 Windows 环境的完整路径存储为 ORIGINAL_PATH,因此您可以使用:
# Reorder PATH in .bash_profile
PATH="${ORIGINAL_PATH}/usr/local/bin:/usr/bin"
通过以这种方式定义 PATH,只要与 Cygwin 实用程序发生冲突,Windows 实用程序就会优先 - official docs以 find
、link
和 sort
为例。
您可能希望采用更简单的路线并仅使用您需要的那些项目来定义新的 PATH,而不是从 Windows 获取整个 PATH。当然,您可以在 .bash_profile
中执行此操作,但也可以在 Cygwin 启动之前从 Cygwin.bat
本身执行此操作。例如:
:: Minimal path defined in Cygwin.bat. Note the double quotes!
set PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin"
同样,这在 Cygwin 中存储为 ORIGINAL_PATH,然后您可以按照上面的说明更改默认顺序。请记住,当您计算出依赖关系等时,对于更复杂的场景,最小方法可能会变得有点“繁琐”。
当我需要使用 MSVC 或其他 Windows 实用程序时,我通常更喜欢保持简单并将 Cygwin 实用程序放在整个 Windows 路径的末尾。但并非总是如此,而且我确实喜欢我的工具具有灵 active 。在下面的最小示例中,标准 Cygwin.bat
文件被修改,以便在 Cygwin 启动时可以通过命令行参数选择几个预定义设置之一。
@echo off
if "%1"=="" (goto run-1)
if "%1"=="-m" (goto prepend-1)
if "%1"=="-w" (goto prepend-2)
if "%1"=="-h" (goto help-1)
:help-1
echo Cygwin.bat: modifed to set PATH via command line arg
echo ARG Description
echo (none) Default - Prepend Cygwin PATH to the full Windows PATH. [CYG,WIN]
echo -m Prepend only MSVC utilities to the Cygwin PATH (minimal approach). [MSVC,CYG]
echo -w Prepend full Windows PATH to the Cygwin PATH. [WIN,CYG]
echo -h Print this help msg and exit.
exit /b
:prepend-1
set MSVC_KW=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
goto run-1
:prepend-2
set WIN_KW=1
goto run-1
:run-1
C:
chdir C:\cygwin64\bin
bash --login -i
此必须伴随着对 .bash_profile
中的路径进行重新排序,如下所示。
# Modify the default PATH in .bash_profile according to KW from Cygwin.bat
if [ -n "${MSVC_KW}" ] ; then
PATH="${MSVC_KW}:/usr/local/bin:/usr/bin"
export PATH
unset MSVC_KW
elif [ -n "${WIN_KW}" ] ; then
PATH="${ORIGINAL_PATH}:/usr/local/bin:/usr/bin"
export PATH
unset WIN_KW
fi
关于c - 从命令行使用 Visual Studio 2013 编译 aritchk.c 时出现未解析的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910167/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!