#compiler-construction #f# #linker
#построение компилятора #f# #компоновщик
Вопрос:
В vs2010 ultimate edition, если вы передадите компилятору f # флаг —standalone на панели проектов, он не свяжет пустой проект C # с файлами конфигурации / файлами ресурсов
Однако он свяжет сборку, если вы явно объявите —staticlink:Config
Это похоже на ошибку … если это намеренно, могу я спросить, почему это может быть?
Ответ №1:
Это ожидаемое поведение:
-
Флаг standalone статически связывает
FSharp.Core.dll
(среду выполнения F #) и любые ссылочные сборки, которые зависят от него (т. Е. любые другие сборки F #). Они должны быть связаны, потому что они могут использовать некоторые типы с основной сборкой (например, F #list
type и т.д.) -
Флаг staticlink связывает любую сборку, которую вы явно указываете (и любые сборки, которые зависят от него). Это означает, что вы можете использовать опцию для ссылки, например, на библиотеку C #, на которую ссылается ваша основная сборка F #.
Я думаю, что эти два случая обрабатываются отдельно, потому что для встраивания F # runtime требуется немного особая обработка (почти весь код F # использует это каким-то образом, и компилятор, вероятно, обрабатывает это по-другому)