2017-01-20 2 views
0

У меня есть проект, который я создал с cmake и работает в visual studio 2010. Я изменил конфигурацию на x64, в visual studio мое активное решение и Target Machine в (Properties-> Linker-> Advanced) установлено как x64.I по-прежнему получают ошибку LLK1112 компоновщика. Это что-то, что я установил в cmakelist.txt, если да, то какая команда? -swethaфатальная ошибка LNK1112: тип модуля типа «x64» конфликтует с типом целевой машины «X86» Visual studio 2010 и cmake

+0

Когда вы настроили CMake для своего проекта, вы выбрали опцию «Win64»? – oLen

ответ

1

Это не то, что вы хотите установить в CMakeLists.txt. В принципе, CMake имеет несколько генераторов для разных компиляторов. (Компиляторы x86 и x64 - это два разных компилятора в Windows.) Когда вы создаете файлы сборки, вам нужно передать правильный компилятор для использования CMake, или если вы используете графический интерфейс, выберите Win64. Из командной строки:

cmake -G "Visual Studio 14 Win64" path/to/your/CMakeLists.txt 

или любую другую версию Visual Studio, которую вы хотите. Вы можете видеть доступные генераторы с:

cmake --help 

Если это не поможет решить проблему, попробуйте еще раз после удаления созданных файлов сборки.

Если это еще не решило проблему, вы связываетесь с зависимостями третьей стороны, созданными для x86.

0

Попробуйте удалить все * .obj-файлы в ваше решение и позволить компилятору снова скомпилировать все файлы. Эта проблема может привести к тому, что компилятор попытается ссылаться на файлы obj, которые были скомпилированы. X64

Смежные вопросы

 Смежные вопросы